Django 保存相关模型对象
我在django应用程序中有两个相关的模型(一对多),当我这样做时Django 保存相关模型对象,django,django-models,Django,Django Models,我在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 = 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)
我得到一个错误,上面写着“列中的值为null,它违反了外键NOTNULL约束”
我的所有模型对象均未保存。我必须先保存“objBlog”才能设置条目吗?我希望可以调用objBlog上的save方法来保存所有内容
注意:我不是在创建博客引擎,这只是一个例子。我猜您的一个模型有一个外键字段,它不能为空。 当您对每个对象执行
objBlog.entry\u 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
所以我必须先保存blog对象,然后才能保存entry对象?它会自动保存,你的模型是什么样子的?Django可能在抱怨,因为其中一个或两个模型上存在FK关系,而不是
Blog
和Entry
,不能为空。实际的回溯将有助于提供实际的帮助或至少是实际的异常。我必须先保存Blog对象。我想Django应该先保存Blog对象,然后再保存Entry对象。当我说“save”时,我执行objBlog.save(),然后执行objBlog.entry\u set.add(objEntry)。现在我知道我必须先保存父对象。这可能是有用的