Django:1048,“列'category_id'不能为空”

时间:2013-07-07 18:44:56

标签: django

这是我的代码:

if ItemSubcategory.objects.filter(name = page_item['slottype']).count() is 0:
    sub_category_set = ItemSubcategory(name = page_item['slottype'])
    sub_category_set.save()
else:
    sub_category_set = ItemSubcategory.objects.get(name = page_item['slottype'])

ni.sub_category = sub_category_set

我想知道为什么它不允许获取和绑定新制作的对象。除此之外,对象返回null(None)的事实是奇怪的。我可以在保存后立即调用它吗?

1 个答案:

答案 0 :(得分:1)

这看起来像是'ItemSubcategory'模型的一个问题,因为当你创建它的实例时......你没有为它提供'category',只有'name'。何时需要'category'。您需要提供'类别'或进行设置,以便此字段可以接受 null 值。

值得一提的另一件事是你的代码不是很“ Pythonic ” - 我花了一分钟时间弄清楚你的代码究竟在做什么,什么时候可以简单如:

# ‘sub_category’ is the model instance
# ‘created’ is True if the object was created and False if it was retrieved
sub_category, created = ItemSubcategory.objects.get_or_create(name = page_item['slottype'])

ni.sub_category = sub_category
ni.save()