首页 > 解决方案 > 当 ForeignKey 设置为“self”时,如何避免“此字段是必需的”?

问题描述

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?

请帮忙。

标签: python-3.xdjango-models

解决方案


如果 aForeignKey是可选的,则可以将其设为 NULLable。因此,如果 a没有父级,则插入NULL/ :NoneCategory

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

推荐阅读