From e1f0f8420b23e221e7677817e1da332d1ec93956 Mon Sep 17 00:00:00 2001 From: colaftc Date: Mon, 2 Feb 2026 16:09:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20added=20=E9=85=8D=E8=B4=A7=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=20field=20into=20PreSalesOrderDetailSerializer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api_v1/views/business/pre_sales/views.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/api_v1/views/business/pre_sales/views.py b/api_v1/views/business/pre_sales/views.py index 535e5de..397b09e 100644 --- a/api_v1/views/business/pre_sales/views.py +++ b/api_v1/views/business/pre_sales/views.py @@ -45,7 +45,6 @@ class AllocationRecordSerializer(serializers.ModelSerializer): class PreSalesOrderItemSerializer(serializers.ModelSerializer): - allocation_records = AllocationRecordSerializer(many=True, read_only=True) allocated_quantity = serializers.SerializerMethodField(read_only=True) progress = serializers.SerializerMethodField(read_only=True) allocation_status = serializers.SerializerMethodField(read_only=True) @@ -64,7 +63,6 @@ class PreSalesOrderItemSerializer(serializers.ModelSerializer): 'allocated_quantity', 'progress', 'allocation_status', - 'allocation_records', ] read_only_fields = ['id'] @@ -94,6 +92,15 @@ class PreSalesOrderItemSerializer(serializers.ModelSerializer): return 3 +class PreSalesOrderItemDetailSerializer(PreSalesOrderItemSerializer): + allocation_records = AllocationRecordSerializer(many=True, read_only=True) + + class Meta(PreSalesOrderItemSerializer.Meta): + fields = PreSalesOrderItemSerializer.Meta.fields + [ + 'allocation_records', + ] + + class PreSalesOrderSerializer(serializers.ModelSerializer): human_id = serializers.CharField(read_only=True) customer_name = serializers.CharField(source='customer.name', read_only=True) @@ -129,6 +136,10 @@ class PreSalesOrderSerializer(serializers.ModelSerializer): ] +class PreSalesOrderDetailSerializer(PreSalesOrderSerializer): + items = PreSalesOrderItemDetailSerializer(many=True, read_only=True) + + class PreSalesOrderPagination(pagination.LimitOffsetPagination): default_limit = 20 max_limit = 100 @@ -241,7 +252,7 @@ class PreSalesOrderDetailView(StockChangeViewMixin, views.APIView): order, error_response = self._get_order(request, pk) if error_response: return error_response - return Response(PreSalesOrderSerializer(order).data, status=status.HTTP_200_OK) + return Response(PreSalesOrderDetailSerializer(order).data, status=status.HTTP_200_OK) def put(self, request, pk: int): return self._update(request, pk)