From b414779f6576dd85da0f2d60a8125b0112448e83 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Wed, 7 Jan 2026 09:16:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D1=83?= =?UTF-8?q?=20=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=84?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=20=D0=B2=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Изменен prefetch для главного фото товаров и комплектов - Теперь берется первое фото по ordering вместо фильтра is_main=True - Это обеспечивает отображение фото даже если is_main не установлен --- myproject/products/views/catalog_views.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/myproject/products/views/catalog_views.py b/myproject/products/views/catalog_views.py index d66639d..e157976 100644 --- a/myproject/products/views/catalog_views.py +++ b/myproject/products/views/catalog_views.py @@ -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' )