This commit is contained in:
jeremygan2021
2026-02-11 00:19:33 +08:00
parent 0b3b81915b
commit 5232ab9960
10 changed files with 183 additions and 39 deletions

View File

@@ -122,20 +122,32 @@ class OrderSerializer(serializers.ModelSerializer):
订单序列化器
"""
config_name = serializers.CharField(source='config.name', read_only=True)
config_image = serializers.SerializerMethodField()
salesperson_name = serializers.CharField(source='salesperson.name', read_only=True)
salesperson_code = serializers.CharField(source='salesperson.code', read_only=True)
# 接收前端传来的 ref_code用于查找 Salesperson
ref_code = serializers.CharField(write_only=True, required=False, allow_blank=True)
class Meta:
model = Order
fields = ['id', 'config', 'config_name', 'quantity', 'total_price', 'status', 'created_at', 'wechat_trade_no',
'customer_name', 'phone_number', 'shipping_address', 'ref_code']
read_only_fields = ['total_price', 'status', 'wechat_trade_no', 'created_at']
fields = ['id', 'config', 'config_name', 'config_image', 'quantity', 'total_price', 'status', 'created_at', 'updated_at', 'wechat_trade_no',
'customer_name', 'phone_number', 'shipping_address', 'ref_code', 'salesperson_name', 'salesperson_code', 'courier_name', 'tracking_number']
read_only_fields = ['total_price', 'status', 'wechat_trade_no', 'created_at', 'updated_at']
extra_kwargs = {
'customer_name': {'required': True},
'phone_number': {'required': True},
'shipping_address': {'required': True},
}
def get_config_image(self, obj):
if obj.config.static_image_url:
return obj.config.static_image_url
if obj.config.detail_image_url:
return obj.config.detail_image_url
if obj.config.detail_image:
return obj.config.detail_image.url
return None
def create(self, validated_data):
"""
重写创建方法,自动计算总价并关联销售员