2017-10-06 39 views
0

因此,我在Django中使用MPTT作为类别模型,并且我想知道是否有方法可以过滤类别(如果没有child)。Django MPTT过滤器只有当没有孩子存在

models.py:在DB

class Category(MPTTModel, TimeStampedModel): 
    title = models.CharField(max_length=75) 
    parent = TreeForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL, related_name='children', db_index=True) 

分类例如:

Games > Nintendo > Nintendo 64 
Games > Microsoft > Xbox One 

我希望能够运行如下命令:

Category.objects.all().has_no_children() 

希望它返回[Nintendo 64, Xbox One]

回答

2

您正试图获得所谓的leaves。这应该对你有所帮助:

Category.objects.filter(lft=F('rght')-1) 
+0

完美地工作,谢谢! – Hybrid

相关问题