Django的:无子元素

问题描述:

查询自参考对象,我有以下的Django模型:Django的:无子元素

class Category(models.Model): 
    name = models.CharField(maxlength=20) 
    parent = models.ForeignKey('self', null=True) 

注意,场parent是自参考,即一类可以有一个父。

我如何找到所有没有子类别的对象Category

您可以使用isnullrelated_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默认为型号名称:categorycategory_set

Category.objects.filter(category__isnull=True) # not so informative 
+0

我用'Category.objects.filter(children__isnull =真)'和它精美的作品。谢谢。 – Frankline