change: change order list serializer
This commit is contained in:
@@ -1,15 +1,33 @@
|
|||||||
from rest_framework import serializers
|
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):
|
class OrderSerializer(serializers.ModelSerializer):
|
||||||
user = serializers.SerializerMethodField(method_name='get_user')
|
user = serializers.SerializerMethodField(method_name='get_user')
|
||||||
|
items = OrderItemSerializer(many=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Order
|
model = Order
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'order_number', 'status', 'total_price', 'user'
|
'id', 'order_number', 'status', 'total_price', 'user', 'items'
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_user(self, obj):
|
def get_user(self, obj):
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from core.apps.orders.models import Order
|
|||||||
|
|
||||||
class OrderListApiView(generics.GenericAPIView):
|
class OrderListApiView(generics.GenericAPIView):
|
||||||
serializer_class = OrderSerializer
|
serializer_class = OrderSerializer
|
||||||
queryset = Order.objects.select_related('user')
|
queryset = Order.objects.select_related('user').prefetch_related('items', 'items__product')
|
||||||
permission_classes = [IsAdminUser]
|
permission_classes = [IsAdminUser]
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
|
|||||||
Reference in New Issue
Block a user