diff --git a/backend/product/serializers.py b/backend/product/serializers.py index cd65826..135e7da 100644 --- a/backend/product/serializers.py +++ b/backend/product/serializers.py @@ -65,7 +65,12 @@ class ProductVariantSerialzier(serializers.ModelSerializer): request = self.context.get('request') if not request or not request.user.is_authenticated: return 0 - return 1 + cart_items = self.context.get('cart_items', []) + if cart_items: + for item in cart_items: + if item['product']['id'] == obj.id: + return item['quantity'] + return 0 diff --git a/backend/product/views.py b/backend/product/views.py index 79b1c60..41aa520 100644 --- a/backend/product/views.py +++ b/backend/product/views.py @@ -10,7 +10,7 @@ from rest_framework.permissions import IsAuthenticatedOrReadOnly from utils.pagination import StructurePagination from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes from rest_framework.permissions import AllowAny - +from order.serializers import OrderItemSerailzier # class APIView(APIView): # def __init__(self, *args, **kwargs): @@ -54,7 +54,10 @@ class ProductView(APIView): # authentication_classes = [] def get(self, request, pk): product = get_object_or_404(ProductModel, id=pk) - product_ser = self.serializer_class(instance=product, many=False, context={'request': request, 'view_type': 'instance'}) + cart_obj, _ = OrderModel.objects.get_or_create(user=request.user, status='CART') + cart_items = cart_obj.items.all() + cart_items_ser = OrderItemSerailzier(cart_items, many=True) + product_ser = self.serializer_class(instance=product, many=False, context={'request': request, 'view_type': 'instance', 'cart_items': cart_items_ser.data}) return Response(product_ser.data, status=status.HTTP_200_OK)