user9073324
user9073324

Reputation:

Override rest-auth signup to add extra fields to my backend

I'm trying to override the RegisterSerializer to add additional field that i could save on the backend while the signup process but i couldn't get it to work. I'm using React as a view layer and it passes the data perfectly when i use the default RegisterSerializer after adding RegisterSerializerCustom it doesn't work at all

here is my code :

    from rest_auth.registration.serializers import RegisterSerializer
    class RegisterSerializerCustom(RegisterSerializer):
        mobile = serializers.CharField(required=False, write_only=True)

        def get_cleaned_data(self):
            return {
                'username': self.validated_data.get('username', ''),
                'password1': self.validated_data.get('password1', ''),
                'email': self.validated_data.get('email', ''),
                'mobile': self.validated_data.get('mobile', ''),
            }

        def validate_mobile(self, mobile):
            return mobile

        def save(self, request):
            res = super(RegisterSerializerCustom, serializers).save(request)
            return res

and i added my these in setting.py

REST_AUTH_SERIALIZERS = {
'REGISTER_SERIALIZER':'user_profile.serializers.RegisterSerializerCustom',
}

what is the problem in my code ?!

Upvotes: 1

Views: 944

Answers (1)

peter
peter

Reputation: 1582

It must be registered in setting.py like this:

REST_AUTH_REGISTER_SERIALIZERS = {
   'REGISTER_SERIALIZER':'user_profile.serializers.RegisterSerializerCustom',
}

Upvotes: 2

Related Questions