我的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方法来保存所有内容。
注意:我不是在创建博客引擎,这只是一个示例。
最佳答案
我猜想您的模型之一有一个不能为空的外键字段。
当您执行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
关于django - 保存相关模型对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2798615/