serializers.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from utils.exceptions import CustomError
  4. from apps.account.models import User
  5. from apps.tenant.employee.models import Employee
  6. class UserSerializer(serializers.ModelSerializer):
  7. type = serializers.IntegerField(read_only=True)
  8. password = serializers.CharField(write_only=True, allow_blank=True)
  9. class Meta:
  10. model = User
  11. fields = '__all__'
  12. def create(self, validated_data):
  13. validated_data['type'] = User.ADMINSTRATOR
  14. if validated_data['password'].strip() == '':
  15. raise CustomError(u'密码不能为空!')
  16. instance = super(UserSerializer, self).create(validated_data)
  17. instance.set_password(validated_data['password'])
  18. instance.save()
  19. Employee.getOrRegister(user=instance,tenant=None)
  20. return instance
  21. def update(self, instance, validated_data):
  22. instance.update_item(validated_data)
  23. # if not 'password' in validated_data or not validated_data['password']:
  24. # validated_data['password'] = instance.password
  25. # instance = super(UserSerializer, self).update(instance, validated_data)
  26. # else:
  27. # instance = super(UserSerializer, self).update(instance, validated_data)
  28. # instance.set_password(validated_data['password'])
  29. # instance.save()
  30. return instance