Django MPTT 仅在不存在子项时过滤

Django MPTT Filter Only if No Children Exist

所以我在 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)

数据库中的类别示例:

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

我希望能够运行这样的命令:

Category.objects.all().has_no_children()

希望它会 return [Nintendo 64, Xbox One]

您正在尝试获取所谓的leaves。这应该可以帮助您:

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