# coding=utf-8 from apps.exceptions import CustomError from rest_framework import serializers from apps.activity.models import Order class ActivityOrderSerializer(serializers.ModelSerializer): number = serializers.SerializerMethodField() create_time = serializers.DateTimeField(format='%m-%d %H:%M', read_only=True) class Meta: model = Order fields = ('number', 'create_time', ) def get_number(self, obj): if obj.number: l = len(obj.number) if l < 4: return '' return obj.number[:2] + '***' + obj.number[l - 2:l] return '' class OrderSerializer(serializers.ModelSerializer): class Meta: model = Order fields = '__all__' def validate(self, attrs): attrs['member'] = self.context['request'].customer if 'activity' in attrs: attrs['activity'].checkStatus() required_signs = attrs['activity'].required_signs.split(',') for item in required_signs: if (item == u'姓名') and ('name' not in attrs): raise CustomError(u'请输入姓名') if (item == u'车牌号') and ('number' not in attrs): raise CustomError(u'请输入车牌号') if (item == u'车型') and ('model' not in attrs): raise CustomError(u'请输入车型') return attrs def create(self, validated_data): validated_data['branch'] = validated_data['activity'].branch instance = super(OrderSerializer, self).create(validated_data) return instance