我的django应用程序中有两个相关模型(一对多),当我做这样的事情时
ObjBlog = Blog()
objBlog.name = 'test blog'
objEntry1 = Entry()
objEntry1.title = 'Entry one'
objEntry2 = Entry()
objEntry2.title = 'Entry Two'
objBlog.entry_set.add(objEntry1)
objBlog.entry_set.add(objEntry2)
我收到一条错误,指出“列中的空值并且它违反了外键而非空约束”。
我的模型对象都没有保存。在设置条目之前,我是否必须保存“objBlog”?我希望我可以在objBlog上调用save方法来保存它。
注意:我没有创建博客引擎,这只是一个示例。
答案 0 :(得分:0)
我猜你的一个模型有一个不可为空的外键字段。
当您执行objBlog.entry_set.add(objEntry1)
时,django会在每个对象上调用save()。
这就是add
方法的样子:
def add(self, *objs):
for obj in objs:
if not isinstance(obj, self.model):
raise TypeError("'%s' instance expected" % self.model._meta.object_name)
setattr(obj, rel_field.name, instance)
obj.save()
add.alters_data = True