这是我的代码:
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
)的事实是奇怪的。我可以在保存后立即调用它吗?
答案 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()