Как фильтровать объекты моей модели на основе 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, но я не могу найти ничего об этом.

Мог бы кто-нибудь указать мне правильное направление?

Вернуться на верх