This commit is contained in:
Ryan Mahaffey 2022-02-27 17:52:09 -07:00 committed by GitHub
commit be9b47362a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 8 deletions

View File

@ -46,6 +46,10 @@ class RegisterView(CreateAPIView):
return super(RegisterView, self).dispatch(*args, **kwargs)
def get_response_data(self, user):
"""
Here I added context to the return of each serializer so
HyperlinkedIdentityFields would work for the user return
"""
if allauth_settings.EMAIL_VERIFICATION == \
allauth_settings.EmailVerificationMethod.MANDATORY:
return {"detail": _("Verification e-mail sent.")}
@ -55,9 +59,13 @@ class RegisterView(CreateAPIView):
'user': user,
'token': self.token
}
return JWTSerializer(data).data
return JWTSerializer(data,
context={'request': self.request}
).data
else:
return TokenSerializer(user.auth_token).data
return TokenSerializer(user.auth_token,
context={'request': self.request}
).data
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)

View File

@ -17,7 +17,9 @@ UserModel = get_user_model()
class LoginSerializer(serializers.Serializer):
username = serializers.CharField(required=False, allow_blank=True)
if settings.ACCOUNT_USER_MODEL_USERNAME_FIELD is not None:
username = serializers.CharField(required=False, allow_blank=True)
email = serializers.EmailField(required=False, allow_blank=True)
password = serializers.CharField(style={'input_type': 'password'})
@ -117,7 +119,7 @@ class TokenSerializer(serializers.ModelSerializer):
"""
Serializer for Token model.
"""
class Meta:
model = TokenModel
fields = ('key',)
@ -127,10 +129,16 @@ class UserDetailsSerializer(serializers.ModelSerializer):
"""
User model w/o password
"""
class Meta:
model = UserModel
fields = ('pk', 'username', 'email', 'first_name', 'last_name')
read_only_fields = ('email', )
if settings.ACCOUNT_USER_MODEL_USERNAME_FIELD is None:
class Meta:
model = UserModel
fields = ('pk', 'email', 'first_name', 'last_name')
read_only_fields = ('email', )
else:
class Meta:
model = UserModel
fields = ('pk', 'username', 'email', 'first_name', 'last_name')
read_only_fields = ('email', )
class JWTSerializer(serializers.Serializer):