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' )