Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 保存相关模型对象_Django_Django Models - Fatal编程技术网

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) 我得

我在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)
我得到一个错误,上面写着“列中的值为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)。现在我知道我必须先保存父对象。这可能是有用的