base cart_quantity filed and filter pagination and sort for order

This commit is contained in:
Parsa Nazer
2025-03-13 23:58:42 +03:30
parent 6009c43345
commit d218a8bed4
3 changed files with 58 additions and 5 deletions
+8 -2
View File
@@ -2,7 +2,7 @@ from .models import *
from rest_framework import serializers
from django.utils import timezone
from datetime import timedelta
from django.contrib.auth.models import AnonymousUser
@@ -49,6 +49,7 @@ class ProductVariantSerialzier(serializers.ModelSerializer):
in_pack_items = InPackItemsSerialzier(many=True)
images = ProductImageSerailizer(many=True)
details = ProductDetailSerializer(many=True, read_only=True)
cart_quantity = serializers.SerializerMethodField()
class Meta:
model = ProductVariant
exclude = ('min_price', 'sell', 'currency', 'product', 'input_price')
@@ -60,6 +61,11 @@ class ProductVariantSerialzier(serializers.ModelSerializer):
if view_type == 'list':
self.fields.pop('in_pack_items', None)
def get_cart_quantity(self, obj):
request = self.context.get('request')
if not request or not request.user.is_authenticated:
return 0
return 1
@@ -135,7 +141,7 @@ class DynamicProductSerializer(serializers.ModelSerializer):
many=True,
context={
'view_type': 'list',
'dollor_price': self.context.get('dollor_price')
'request': self.context.get('request')
}
)
return serializer.data
+1 -1
View File
@@ -51,7 +51,7 @@ class AllCategories(APIView):
class ProductView(APIView):
serializer_class = DynamicProductSerializer
permission_classes = [AllowAny]
authentication_classes = []
# 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'})