当ForeignKey设置为“ self”时,如何避免“此字段必填”?

时间:2019-12-05 10:02:13

标签: python-3.x django-models

class Category(models.Model):
    name = models.CharField(max_length=50)
    parent_category = models.ForeingKey('self', on_delete=models.CASCADE)

因此,当我尝试在管理面板中创建新类别时,django会说“此字段为必填字段”,并突出显示parent_category:选择字段。 如何“解释” django,它是父类别,因此无需选择parent_category?

请帮助。

1 个答案:

答案 0 :(得分:1)

如果ForeignKey是可选的,则可以使其为NULL。因此,如果NULL没有父项,则插入None / Category

class Category(models.Model):
    name = models.CharField(max_length=50)
    parent_category = models.ForeignKey(
        'self',
        on_delete=models.CASCADE,
        null=True,
        blank=True
    )