change: change order list serializer

This commit is contained in:
behruz-dev
2025-09-03 16:51:00 +05:00
parent 47dd917ed0
commit 9c1e9ed419
2 changed files with 21 additions and 3 deletions

View File

@@ -1,15 +1,33 @@
from rest_framework import serializers
from core.apps.orders.models import Order
from core.apps.orders.models import Order, OrderItem
class OrderItemSerializer(serializers.ModelSerializer):
product = serializers.SerializerMethodField(method_name='get_product')
class Meta:
model = OrderItem
fields = [
'id', 'quantity', 'price', 'product',
]
def get_product(self, obj):
return {
'id': obj.product.id,
'name_uz': obj.product.name_uz,
'name_ru': obj.product.name_ru,
}
class OrderSerializer(serializers.ModelSerializer):
user = serializers.SerializerMethodField(method_name='get_user')
items = OrderItemSerializer(many=True)
class Meta:
model = Order
fields = [
'id', 'order_number', 'status', 'total_price', 'user'
'id', 'order_number', 'status', 'total_price', 'user', 'items'
]
def get_user(self, obj):

View File

@@ -8,7 +8,7 @@ from core.apps.orders.models import Order
class OrderListApiView(generics.GenericAPIView):
serializer_class = OrderSerializer
queryset = Order.objects.select_related('user')
queryset = Order.objects.select_related('user').prefetch_related('items', 'items__product')
permission_classes = [IsAdminUser]
def get(self, request):