Как фильтровать объекты моей модели на основе Tree QuerySet из MPTT Django?
У меня возникла проблема с созданием категории с родительской категорией. Примерно так:
- Category 1
- SubCategory 1.1
- SubCategory 1.2
- Category 2
Мне удалось сделать это с помощью django-mptt и MPTTModel и TreeForeignKey:
class Category(MPTTModel):
title = models.CharField(max_length=100)
parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
И я доволен, я делаю всю магию в шаблонах и в views.py я получаю объект 'TreeQuerySet'. И я вижу, что он работает (я использовал метод get_family()), если я отправлю категорию 1, то в этом объекте TreeQuerySet у меня есть (Категория 1, Подкатегория 1.1, Подкатегория 1.2), так что успех.
Но тогда я понятия не имею, как сделать запрос на основе этого.
У меня есть объектная модель:
class Post(models.Model):
title = models.CharField(max_length=255)
category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, blank=True, default=None)
И я хочу сделать запрос через мои объекты Post с помощью этого TreeQuerySet, чтобы получить объекты Post, которые имеют категорию - Category 1 OR SubCategory 1.1 OR SubCategory 1.2 attached.
И я пробовал много вещей с объединением, циклами for и другими вещами, но все это не удавалось в большинстве случаев, потому что объект TreeQuerySet не имеет такого-то и такого-то метода.
Я начал думать, что я должен быть в состоянии достичь этого, возможно, с помощью встроенного метода из модуля MPTT-Django, но я не могу найти ничего об этом.
Мог бы кто-нибудь указать мне правильное направление?