Django оптимизировать запрос к базе данных

Делаю каталог при помощи django. Мои категории хранятся в модели mptt. А все товары в обычной модели. Я хочу выводить товары, которые соответствуют всем подкатегориям основной категории. Я делаю запрос в mptt модель, получаю нужную основную категорию

catalog_sort = Catalog.objects.get(slug = post_slug)

Далее получаю всех ее потомков

products_descendants = catalog_sort.get_descendants(include_self=True)

Они выводятся вот в таком формате

<TreeQuerySet [<Catalog: Микрофоны>, <Catalog: Навесные микрофоны>, <Catalog: Настенные микрофоны>]>

Я добавляю их список и затем циклом добавляю нужные товары в список

answers_list = list(products_descendants)

    products = []
    for x in range(0,len(answers_list)):
        products += product.objects.filter(category=answers_list[x])

Меня смущает мой цикл, ведь когда товаров будет много, на полный перебор будет уходить время. Может быть есть готовые функции которые смогут мне помочь? Заранее спасибо за ответ)

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