Django - null ForeignKey

pbm*_*pbm 9 django foreign-keys django-models django-admin

我将带有ForeignKey的SubForum类转换为自我父级:

class Forum(models.Model):
    name = models.CharField(max_length=200)
    url = models.URLField()

class SubForum(models.Model):
    name = models.CharField(max_length=200)
    orginal_id = models.IntegerField()

    forum = models.ForeignKey('Forum')
    parent = models.ForeignKey('self', null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

我想允许null和空白的enteries - 我看到了一些例子,这是一种正确的方法.

在sql视图中一切正常:

BEGIN;CREATE TABLE "main_forum" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(200) NOT NULL,
    "url" varchar(200) NOT NULL
)
;
CREATE TABLE "main_subforum" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(200) NOT NULL,
    "orginal_id" integer NOT NULL,
    "forum_id" integer NOT NULL REFERENCES "main_forum" ("id"),
    "parent_id" integer
)
;COMMIT;
Run Code Online (Sandbox Code Playgroud)

parent_id字段中没有NOT NULL,但是当我想使用管理面板添加新的SubForum而没有设置父级时我得到错误:

Cannot assign None: "SubForum.parent" does not allow null values.

怎么了?

pbm*_*pbm 2

我做了一些更改,将其恢复回来,现在一切正常...并且我没有看到与我在此处发布的代码有任何区别...

我应该删除问题吗?

  • 不,你不应该删除它。一年后,这对我来说是一个很好的例子。 (4认同)