Исправить загрузку главного фото в каталоге

- Изменен prefetch для главного фото товаров и комплектов
- Теперь берется первое фото по ordering вместо фильтра is_main=True
- Это обеспечивает отображение фото даже если is_main не установлен
This commit is contained in:
2026-01-07 09:16:05 +03:00
parent 161f65e6c3
commit b414779f65

View File

@@ -35,10 +35,12 @@ class CatalogView(LoginRequiredMixin, ListView):
total_available = Coalesce(Sum('stocks__quantity_available'), Value(0), output_field=DecimalField())
total_reserved = Coalesce(Sum('stocks__quantity_reserved'), Value(0), output_field=DecimalField())
# Prefetch только главного фото для товаров (is_main=True)
# Prefetch главного фото для товаров
# Берем первое фото по ordering (is_main=True будет первым, если есть)
# Это работает даже если is_main не установлен
main_product_photo = Prefetch(
'photos',
queryset=ProductPhoto.objects.filter(is_main=True),
queryset=ProductPhoto.objects.all()[:1],
to_attr='main_photo_list'
)
@@ -51,10 +53,11 @@ class CatalogView(LoginRequiredMixin, ListView):
total_reserved=total_reserved,
).order_by('name')
# Prefetch только главного фото для комплектов (is_main=True)
# Prefetch главного фото для комплектов
# Берем первое фото по ordering (is_main=True будет первым, если есть)
main_kit_photo = Prefetch(
'photos',
queryset=ProductKitPhoto.objects.filter(is_main=True),
queryset=ProductKitPhoto.objects.all()[:1],
to_attr='main_photo_list'
)