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])
Меня смущает мой цикл, ведь когда товаров будет много, на полный перебор будет уходить время. Может быть есть готовые функции которые смогут мне помочь? Заранее спасибо за ответ)