Django的:无子元素
问题描述:
查询自参考对象,我有以下的Django模型:Django的:无子元素
class Category(models.Model):
name = models.CharField(maxlength=20)
parent = models.ForeignKey('self', null=True)
注意,场parent
是自参考,即一类可以有一个父。
我如何找到所有没有子类别的对象Category
?
答
您可以使用isnull
与related_query_name
:
class Category(models.Model):
# ...
parent = models.ForeignKey('self', null=True, related_name='children', related_query_name='child')
Category.objects.filter(child__isnull=True)
在这里,我建议至少指定一个有意义的related_name
! 如果您仅指定related_name
,则related_query_name
默认为该名称(此处为children
)。如果没有指定的二,RQN默认为型号名称:category
,不category_set
Category.objects.filter(category__isnull=True) # not so informative
我用'Category.objects.filter(children__isnull =真)'和它精美的作品。谢谢。 – Frankline