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