我的应用程序中有两个模型,A
,B
。
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
但没有任何成功。