创建 Django 模型时出现“parent_id may not be NULL”

Posted

技术标签:

【中文标题】创建 Django 模型时出现“parent_id may not be NULL”【英文标题】:I get "parent_id may not be NULL" when creating my Django model 【发布时间】:2010-10-25 04:22:08 【问题描述】:

我正在创建自己的Group 模型;我不是指内置的Group 模型。我希望每个 hroup 成为另一个组的成员(它是父组),但是有一个“***”组没有父组。

管理界面不允许我在未输入父级的情况下创建组。我收到错误personnel_group.parent_id may not be NULL。我的Group 模型如下所示:

class Group(models.Model):
    name = models.CharField(max_length=50)
    parent = models.ForeignKey('self', blank=True, null=True)
    order = models.IntegerField()
    icon = models.ImageField(upload_to='groups', blank=True, null=True)
    description = models.TextField(blank=True, null=True)

我怎样才能做到这一点?

谢谢。

【问题讨论】:

所以实际上标题应该是:为什么syncdb失败,当我将blank=True,null=True添加到模型字段时 【参考方案1】:

Django 进化可以让你摆脱这种问题,而不会删除你的完整数据库

【讨论】:

【参考方案2】:

我在将 blank=True, null=True 添加到 parent 字段定义之前创建了数据库。 syncdb 无法处理这种类型的更改,因此 Django 没有接受我的更改。

我删除了我的数据库并让syncdb创建另一个,它工作正常。

【讨论】:

您应该考虑使用像 South 这样的数据库方案迁移工具。 有没有更好的方法来代替删除整个数据库? @niklasfi 如果您使用 South,则无需删除数据库。

以上是关于创建 Django 模型时出现“parent_id may not be NULL”的主要内容,如果未能解决你的问题,请参考以下文章

制作 django AJAX likes 时出现操作错误

api rest 调用更新 django 模型时出现错误 415

在我更改了一些模型字段(Django)之后,尝试访问 django admin 时出现 /admin/myapp/mymodel 的 TypeError

在 Django 1.8 或更高版本中填充时出现“模型尚未加载”错误

尝试在 Django 中的模型表之间建立关系。但是在插入值时出现错误 |外键项必须是一个实例

更新记录时出现 Django IntegrityError