serializers.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # coding=utf-8
  2. from apps.exceptions import CustomError
  3. from rest_framework import serializers
  4. from apps.activity.models import Order
  5. class ActivityOrderSerializer(serializers.ModelSerializer):
  6. number = serializers.SerializerMethodField()
  7. create_time = serializers.DateTimeField(format='%m-%d %H:%M', read_only=True)
  8. class Meta:
  9. model = Order
  10. fields = ('number', 'create_time', )
  11. def get_number(self, obj):
  12. if obj.number:
  13. l = len(obj.number)
  14. if l < 4:
  15. return ''
  16. return obj.number[:2] + '***' + obj.number[l - 2:l]
  17. return ''
  18. class OrderSerializer(serializers.ModelSerializer):
  19. class Meta:
  20. model = Order
  21. fields = '__all__'
  22. def validate(self, attrs):
  23. attrs['member'] = self.context['request'].customer
  24. if 'activity' in attrs:
  25. attrs['activity'].checkStatus()
  26. required_signs = attrs['activity'].required_signs.split(',')
  27. for item in required_signs:
  28. if (item == u'姓名') and ('name' not in attrs):
  29. raise CustomError(u'请输入姓名')
  30. if (item == u'车牌号') and ('number' not in attrs):
  31. raise CustomError(u'请输入车牌号')
  32. if (item == u'车型') and ('model' not in attrs):
  33. raise CustomError(u'请输入车型')
  34. return attrs
  35. def create(self, validated_data):
  36. validated_data['branch'] = validated_data['activity'].branch
  37. instance = super(OrderSerializer, self).create(validated_data)
  38. return instance