models.py
class Category:
name = ...
class SubCategory:
name = ...
category = models.ForeignKey(Category)
class Item:
name = ...
category = models.ForeignKey(Category)
subcategory = models.ForeignKey(SubCategory)
class ItemImage:
item = models.ForeignKey(Item)
image = ...
views.py
def show_all(request):
categories = Category.objects.all()
return render(request, 'template.html), {'categories':categories})
шаблон. html
{% for cat in categories %}
<!-- cat.name -->
{% for subcat in cat %}
<!-- subcat.name -->
{% for item in subcat.item_set.all %}
<!-- item.name -->
<img src="{{item.itemimage_set.first.image.url}}">
Проблема:
последняя итерация в html для itemimage_set
вызывает дополнительный запрос для каждого отображаемого элемента. У меня есть 300 элементов для отображения на странице, затем более 300 запросов для каждого запроса. Не знаете, куда добавить prefetch
... или это неизбежно? Пожалуйста, помогите!