serializers.py 1.0 KB

123456789101112131415161718192021222324252627
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from apps.customer.models import CustomerAddress
  4. from utils.exceptions import CustomError
  5. class AddressSerializer(serializers.ModelSerializer):
  6. class Meta:
  7. model = CustomerAddress
  8. fields = '__all__'
  9. def create(self, validated_data):
  10. validated_data['customer'] = self.context['request'].customer
  11. if validated_data['default']:
  12. CustomerAddress.objects.filter(customer=validated_data['customer']).update(default=False)
  13. instance = super(AddressSerializer, self).create(validated_data)
  14. return instance
  15. def update(self, instance, validated_data):
  16. if instance.delete:
  17. raise CustomError(u'该收货地址已被删除,禁止重复操作!')
  18. if validated_data['default']:
  19. CustomerAddress.objects.filter(customer=instance.customer).update(default=False)
  20. instance = super(AddressSerializer, self).update(instance, validated_data)
  21. return instance