2 回答

TA贡献1825条经验 获得超6个赞
您可以尝试使用自引用的ForeignKey。
class Category(models.Model):
title = models.CharField(max_length=50, unique=True)
parent_category = models.ForeignKey('self', related_name='sub_category')
def __str__(self):
return f"{self.title}"
然后它将像这样工作:
a_category = Category.objects.create(title='Parent category')
Category.objects.create(title='subcategory', parent_category=a_category)
并获得所有子类别,您可以执行以下操作:
a_category.sub_category.all()

TA贡献1794条经验 获得超8个赞
好吧,您所做的没错,但是如果您想在同一张表上执行此操作,则可以在charfield上使用choice。
YEAR_IN_SCHOOL_CHOICES = (
(FRESHMAN, 'Freshman'),
(SOPHOMORE, 'Sophomore'),
(JUNIOR, 'Junior'),
(SENIOR, 'Senior'),
)
sub_cat = models.CharField(choices=YEAR_IN_SCHOOL_CHOICES)
添加回答
举报