From 9c1e9ed4197c87fa246aa4180a4772877b01ca0e Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Wed, 3 Sep 2025 16:51:00 +0500 Subject: [PATCH] change: change order list serializer --- core/apps/admin_panel/serializers/order.py | 22 ++++++++++++++++++++-- core/apps/admin_panel/views/order.py | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/core/apps/admin_panel/serializers/order.py b/core/apps/admin_panel/serializers/order.py index 41e05a8..d06dc6c 100644 --- a/core/apps/admin_panel/serializers/order.py +++ b/core/apps/admin_panel/serializers/order.py @@ -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): diff --git a/core/apps/admin_panel/views/order.py b/core/apps/admin_panel/views/order.py index 7b66645..316c854 100644 --- a/core/apps/admin_panel/views/order.py +++ b/core/apps/admin_panel/views/order.py @@ -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):