From 575fa76c91b327d27dfd75cee5e79b5236d77d50 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Mon, 21 Apr 2025 17:22:07 +0330 Subject: [PATCH] debug multipule product show --- backend/product/views.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/backend/product/views.py b/backend/product/views.py index ccc51ee..797b97e 100644 --- a/backend/product/views.py +++ b/backend/product/views.py @@ -12,6 +12,7 @@ from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes from rest_framework.permissions import AllowAny from order.serializers import OrderItemSerailzier from order.models import OrderModel +from django.db.models import Min, Max # class APIView(APIView): # def __init__(self, *args, **kwargs): # super().__init__(*args, **kwargs) @@ -177,15 +178,16 @@ class AllProductsView(APIView): if search_query: products = products.filter(Q(name__icontains=search_query) | Q(description__icontains=search_query)) - # # Price filters + # Price filters price_gte = request.query_params.get('price_gte', None) price_lte = request.query_params.get('price_lte', None) - - if price_gte: - products = products.filter(variants__price__gte=price_gte) - if price_lte: - products = products.filter(variants__price__lte=price_lte) + products = products.annotate(min_price=Min('variants__price'), max_price=Max('variants__price')) + + if price_gte: + products = products.filter(max_price__gte=price_gte) + if price_lte: + products = products.filter(min_price__lte=price_lte) # Sorting sort_by = request.query_params.get('sort', None) if sort_by in ['name', '-name', 'created_at', '-created_at']: