Django:用'null'ForeignKey实例化对象

2024-05-29 11:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序中有两个模型,AB。你知道吗

A应该与B具有一对多关系,因此BForeignKey属性传递给A。你知道吗

然而,这些关系只是在一段时间后建立起来的,而不是在实例化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文档中所示,对引用的模型使用字符串参数。你知道吗

注意,applied_with_id中的NOT NULL约束通过使用null=True而不存在。你知道吗

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

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

我不明白这其中的原因,还有,一个人怎样才能建立一对多的关系,而这种关系只是在一段时间后才建立起来的? 我在这里查看了有关nullForeignKeys的相关文章,但唯一相关的文章似乎是updatedb解决了问题(没有任何模型更改)。我使用的是django1.5,并且使用了等价的syncdb,但是没有成功。你知道吗


Tags: 对象文档模型idtrue参数关系with

热门问题