Django Rest Framework - loginview Неверные данные. Ожидали словарь, а получили AnonymousUser

Я пытаюсь создать представление входа в систему в django rest framework, но получаю такую ошибку:

Недопустимые данные. Ожидали словарь, а получили AnonymousUser.

.

Это мой loginserializer:

class LoginSerializer(serializers.ModelSerializer):
email = serializers.EmailField(max_length=254, min_length=4)
password = serializers.CharField(max_length=68, min_length=8, write_only=True)
username = serializers.CharField(max_length=20, min_length=4, read_only=True)
tokens = serializers.CharField(max_length=700, min_length=8, read_only=True)

class Meta:
    model = UserProfile
    fields = ['email', 'password', 'username', 'tokens']

def validate(self, attrs):
    email = attrs.get('email', '')
    password = attrs.get('password', '')
    user = auth.authenticate(email=email, password=password)

    if not user:
        raise AuthenticationFailed('Invalid credentials, please try again later')

    if not user.has_verified_email:
        raise AuthenticationFailed('Your email has not been verified, please verify it and then proceed to login later.')

    if not user.is_active and user.has_verified_email:
        raise AuthenticationFailed('Your account has been disabled, please try again later')

    return {
        'email': user.email,
        'username': user.username,
        'tokens': user.tokens,
    }

    return super().validate(attrs)

Это мой loginapiview:

class LoginAPIView(generics.GenericAPIView):

serializer_class = LoginSerializer

def post(self, request):
    user = request.user
    serializer = self.serializer_class(data=user)
    serializer.is_valid(raise_exception=True)

    return response.Response(serializer.data, status=status.HTTP_200_OK)

Также я возвращаю jwt-токены для модели пользователя, используя следующую функцию:

def tokens(self):
    refresh_token = RefreshToken.for_user(self)
    return {
        'refresh': str(refresh_token),
        'access': str(refresh_token.access_token),
    }

Я все перепроверил, я действительно следую курсу на youtube, но я не понимаю, что не так и как я должен это исправить, я буду благодарен за любой совет. Спасибо.

в этой строке есть ошибка:

serializer = self.serializer_class(data=user)

вы можете проверить, используя request.data

Вернуться на верх