保存相关的模型对象

时间:2010-05-09 18:12:48

标签: 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”?我希望我可以在objBlog上调用save方法来保存它。

注意:我没有创建博客引擎,这只是一个示例。

1 个答案:

答案 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