Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import django.contrib.auth.password_validation as validators
- from rest_framework import serializers
- class RegisterUserSerializer(serializers.ModelSerializer):
- password = serializers.CharField(style={'input_type': 'password'}, write_only=True)
- class Meta:
- model = User
- fields = ('id', 'username', 'email, 'password')
- def validate_password(self, data):
- # validators.validate_password(password=data, user=User)
- # return data
- # here data has all the fields which have validated values
- # so we can create a User instance out of it
- user = User(**data)
- # get the password from the data
- password = data.get('password')
- errors = dict()
- try:
- # validate the password and catch the exception
- validators.validate_password(password=password, user=user)
- # the exception raised here is different than serializers.ValidationError
- except exceptions.ValidationError as e:
- errors['password'] = list(e.messages)
- if errors:
- raise serializers.ValidationError(errors)
- return super(RegisterUserSerializer, self).validate(data)
- def create(self, validated_data):
- user = User.objects.create_user(**validated_data)
- user.is_active = False
- user.save()
- return user
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement