Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AuthenticateSerializer(serializers.ModelSerializer):
- username = serializers.CharField(source='user.username')
- password = serializers.CharField(source='user.password', style={'input_type': 'password'})
- author = AuthorSerializer(allow_null=True, read_only=True)
- class Meta:
- model = User
- depth = 1
- fields = [
- 'username',
- 'password',
- 'author',
- ]
- extra_kwargs = {"password": {"write_only": True}}
- def validate(self, attrs):
- validation_data = dict(attrs)['user']
- username = validation_data.get('username', None);
- password = validation_data.get('password', None);
- try:
- user = User.objects.get(username=username)
- except:
- raise ValidationError("Incorrect login/password.")
- if user.check_password(password):
- attrs['author'] = user.author
- return attrs
- raise ValidationError("Incorrect login/password.")
Add Comment
Please, Sign In to add comment