From 177aeb4bed96ef996fa8dab082b909fb1f2b718e Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 12 Oct 2023 10:08:12 +0800 Subject: [PATCH] fix: update order submit_time ignore --- apps/sam/serializers.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/sam/serializers.py b/apps/sam/serializers.py index 716d9c5e..34dde57e 100644 --- a/apps/sam/serializers.py +++ b/apps/sam/serializers.py @@ -5,6 +5,7 @@ from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE from rest_framework.exceptions import ValidationError from apps.mtm.serializers import MaterialSerializer + class CustomerSerializer(CustomModelSerializer): class Meta: model = Customer @@ -23,7 +24,8 @@ class OrderSerializer(CustomModelSerializer): class Meta: model = Order fields = '__all__' - read_only_fields = EXCLUDE_FIELDS + ['belong_dept', 'state'] + read_only_fields = EXCLUDE_FIELDS + \ + ['belong_dept', 'state', 'submit_time'] def validate(self, attrs): contract = attrs.get('contract', None) @@ -32,15 +34,17 @@ class OrderSerializer(CustomModelSerializer): if attrs.get('customer', None) is None: raise ValidationError('未选择客户') return attrs - + def update(self, instance, validated_data): if instance.state != Order.ORDER_CREATE: raise ValidationError('订单信息不可编辑') return super().update(instance, validated_data) + class OrderItemSerializer(CustomModelSerializer): material_ = MaterialSerializer(source='material', read_only=True) order_ = OrderSerializer(source='order', read_only=True) + class Meta: model = OrderItem fields = '__all__' @@ -51,15 +55,15 @@ class OrderItemSerializer(CustomModelSerializer): if order.state != Order.ORDER_CREATE: raise ValidationError('该订单状态下不可创建') return attrs - + def create(self, validated_data): order = validated_data['order'] material = validated_data['material'] if OrderItem.objects.filter(order=order, material=material).exists(): raise ValidationError('该产品已选择!') return super().create(validated_data) - + def update(self, instance, validated_data): validated_data.pop('product', None) validated_data.pop('order', None) - return super().update(instance, validated_data) \ No newline at end of file + return super().update(instance, validated_data)