У меня есть следующий фрагмент кода
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
prefetch = ['vendor', 'picture']
context['most_popular_products'] = Product.objects.filter(is_popular=True)[:5].prefetch_related(*prefetch)
context['coming_soon_products'] = Product.objects.filter(is_coming_soon=True)[:5].prefetch_related(*prefetch)
context['recent_products'] = Product.objects.all()[:5].prefetch_related(*prefetch)
return context
Как вы видите, есть 3 отдельных вызова для 5 последних most_popular
, coming_soon
и recent
продуктов.Есть ли способ уменьшить количество обращений к базе данных?
Я хотел бы построить один запрос, например,
popular, coming_soon, recent = Product.objects.filter...and.so.on
Есть идеи?спасибо