在Django中使用关键字保存对象模型

时间:2018-01-29 18:46:09

标签: python django django-models

我正在使用drum template构建一个reddit样式的网站,我想用一些条目填充我的数据库。我的问题是我无法添加Link和相应的关键字。我正在尝试这个(我为模型添加了一些属性):

   keywords_list = ['key1_test','key1_test']

   u = User.objects.get(username = username)

   obj = Link(
       link = 'www.example.com',
       user = u,
       pub_date = datetime.datetime.now(),
       title = 'Title',
       description = 'blabla',
       fb_shares_ts = '',
       fb_reactions_ts = '',
       fb_comments_ts = '',
       fb_engagement_ts = ''
       )
   for key in keywords_list:
       keyword, _ = Keyword.objects.get_or_create(title=key)
       obj.keywords.add(AssignedKeyword(keyword=keyword),bulk=False)
   obj.save()

它给了我这个错误:

django.db.utils.IntegrityError: NOT NULL constraint failed: generic_assignedkeyword.object_pk

1 个答案:

答案 0 :(得分:1)

您需要先保存对象,然后将关键字添加到其中!另一种选择是save(commit=False),添加关键字,然后save() ...