Фильтр Django MPTT, только если дочерние элементы не существуют

Итак, я использую MPTT для модели категории в Django, и мне было интересно, есть ли способ отфильтровать категорию, если нет child.

модели.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]


person Hybrid    schedule 06.10.2017    source источник


Ответы (1)


Вы пытаетесь получить то, что называется leaves. Это должно помочь вам:

Category.objects.filter(lft=F('rght')-1)
person Jahongir Rahmonov    schedule 06.10.2017