我有以下 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
关于python - Django:查询没有子元素的自引用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40743308/