创建Django模型时出现“parent_id不能为空”错误

4 投票
2 回答
3703 浏览
提问于 2025-04-15 11:30

我正在创建自己的 Group 模型;我不是在说内置的 Group 模型。我希望每个小组都能成为另一个小组的成员(也就是它的父组),但有一个“顶级”小组是没有父组的。

管理界面不允许我创建一个没有输入父组的小组。我收到的错误是 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)

我该怎么做才能实现这个呢?

谢谢。

2 个回答

0

Django的演变可以帮助你解决这类问题,而不需要完全删除你的数据库。

7

我在给parent字段添加blank=True, null=True之前就创建了数据库。syncdb无法处理这种类型的变化,所以Django没有识别到我的修改。

我删除了我的数据库,然后让syncdb重新创建了一个,这样就没问题了。

撰写回答