Advertisement
Guest User

Untitled

a guest
Mar 11th, 2016
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. class UserSerializer(serializers.ModelSerializer):
  2.     email = serializers.EmailField(max_length=50, allow_blank=False, required=True)
  3.     full_name = serializers.CharField(max_length=150, allow_blank=False, required=True)
  4.     password = serializers.CharField(allow_blank=False, write_only=True, required=True)
  5.     is_active = serializers.BooleanField(required=False)
  6.     # category_tags = ??
  7.  
  8.     class Meta:
  9.         model = User
  10.         fields = ('id', 'email', 'full_name', 'is_active', 'is_online', 'joined', 'category_tags', 'password')
  11.         write_only_fields = ('password',)
  12.         read_only_fields = ('id', 'joined', 'is_online')
  13.  
  14.         validators = [
  15.             UniqueTogetherValidator(
  16.                 queryset = User.objects.all(),
  17.                 fields = ('email',),
  18.                 message= "This email is already registered"
  19.             )
  20.         ]
  21.  
  22.     def create(self, validated_data):
  23.         generated_password = get_random_string(length=8)
  24.  
  25.         user = User.objects.create(
  26.             email = validated_data['email'],
  27.             full_name = validated_data['full_name']
  28.         )
  29.  
  30.         user.set_password(generated_password)
  31.         user.save()
  32.         return user
  33.  
  34.     def update(self, instance, validated_data):
  35.         instance.email = validated_data.get('email', instance.email)
  36.         instance.full_name = validated_data.get('full_name', instance.full_name)
  37.         instance.is_active = validated_data.get('is_active', instance.is_active)
  38.        
  39.  
  40.         if is_password_usable(validated_data.get('password', instance.password)) != True:
  41.             instance.set_password(validated_data.get('password', instance.password))
  42.  
  43.         instance.save()
  44.         return instance
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement