Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from rest_framework import serializers
- from django.contrib.auth import password_validation
- class PasswordField(serializers.CharField):
- def __init__(self, *args, **kwargs):
- kwargs['write_only'] = True
- kwargs['style'] = {'input_type': 'password'}
- self.validate_password = kwargs.pop('validate_password', True)
- self.user = kwargs.pop('user', None)
- self.user_from_request = kwargs.pop('get_user_from_request', True)
- super(PasswordField, self).__init__(*args, **kwargs)
- def set_user(self, user):
- self.user = user
- def get_user(self):
- if not self.user and self.user_from_request:
- if self.context:
- request = self.context.get('request')
- if request.user.is_authenticated():
- self.user = request.user
- return self.user
- def to_internal_value(self, data):
- if self.validate_password:
- password_validation.validate_password(data, user=self.get_user())
- return super(PasswordField, self).to_internal_value(data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement