所以我在Django中使用MPTT作为分类模型,我想知道如果没有child
,是否有办法过滤类别。
models.py:
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)
DB中的类别示例:
Games > Nintendo > Nintendo 64
Games > Microsoft > Xbox One
我希望能够运行这样的命令:
Category.objects.all().has_no_children()
希望它会返回[Nintendo 64, Xbox One]
答案 0 :(得分:3)
您正试图获得所谓的leaves
。这应该可以帮到你:
Category.objects.filter(lft=F('rght')-1)