Reputation: 13172
How do I handle user registration over and API using django_rest_framework? Specifically, how would I set up a password field in the UserSerializer
class NewUserSerializer(serializer.Serializers):
first_name = serializers.CharField(required=True, max_length=30)
last_name = serializers.CharField(required=True, max_length=30)
username = serlializers.CharField(required=True, max_length=30)
email = serializers.EmailField(required=True)
password = ???
def restore_object(self, attrs, instance=None):
if instance:
instance.username = attrs.get('username', instance.username)
instance.first_name = attrs.get('first_name', instance.first_name)
instance.last_name = attrs.get('last_name', instance.last_name)
instance.email = attrs.get('email', instance.email)
# Would the instance.password field be necessary?
instance.password = attrs.get('password', instance.password)
else:
return User(**attrs)
Upvotes: 0
Views: 276
Reputation: 17621
You can just use a CharField for password. And you even dont need a restore_object at all. You can just do it like this, define fields like you do and then :
serializer = NewUserSerializer(data=request.DATA)
if serializer.is_valid():
email = serializer.object["email"]
password = serializer.object["password"]
# do the stuff you want here
Upvotes: 1