【问题标题】:Django MPTT Filter Only if No Children ExistDjango MPTT 仅在不存在子项时过滤
【发布时间】:2017-10-06 00:04:11
【问题描述】:

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

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

【问题讨论】:

    标签: python django django-models django-mptt mptt


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      • 2012-09-04
      • 2012-10-13
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多