覆盖rest-auth注册以向我的后端添加额外的字段

时间:2018-03-24 00:41:19

标签: python django django-rest-framework django-allauth django-rest-auth

我试图覆盖RegisterSerializer以添加我可以在注册过程中保存在后端的其他字段,但我无法使其正常工作。我使用React作为视图图层,在我添加RegisterSerializer之后使用默认RegisterSerializerCustom时,它完全传递了数据,但它根本不起作用

这是我的代码:

    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

我在setting.py

中添加了我的这些内容
REST_AUTH_SERIALIZERS = {
'REGISTER_SERIALIZER':'user_profile.serializers.RegisterSerializerCustom',
}

我的代码中有什么问题?!

1 个答案:

答案 0 :(得分:1)

它必须像这样在setting.py中注册:

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