Django:使用`null` ForeignKey实例化对象

时间:2014-07-15 08:36:17

标签: python django sqlite

我的应用程序中有两个模型,AB

A应该与B建立一对多的关系,因此B会将ForeignKey属性带到A

然而,关系仅在一段时间后才建立, not B的对象被实例化时。我从文档中了解到,在这种情况下,我应该使用null=True作为B的ForeignKey的参数。 B表确实如下所示:

CREATE TABLE "B" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(128) NOT NULL,
    "applied_with_id" integer REFERENCES "A" ("id")
)
;

在我的B模型中,我将applied_with字段设置为

applied_with = models.ForeignKey('A', null=True)

如Django文档中所示,使用引用模型的字符串参数。

请注意,使用NOT NULL时,applied_with_id中的null=True约束不存在。

然而,当我现在开始创建一个B对象时,我得到了

django.db.utils.IntegrityError: B.applied_with_id may not be NULL

我无法理解这个的原因,以及如何创建一对多关系,其中连接只在一段时间后建立? 我在这里检查了有关null ForeignKeys的相关帖子,但唯一相关的帖子似乎是updatedb解决问题的帖子(没有任何模型更改)。我正在使用Django 1.5并使用了等效的syncdb但没有任何成功。

0 个答案:

没有答案