«Активная учетная запись с этими учетными данными не найдена» при попытке входа в систему с помощью Django REST Simple JWT

#python #django #web #jwt #backend

Вопрос:

Я пытаюсь настроить этот API с аутентификацией пользователя, но при попытке входа в систему я продолжаю получать сообщение об ошибке в заголовке. Регистрация, похоже, работает, и суперпользователь может войти в систему. Я полагаю, что это связано с хэшированием пароля, потому что, когда я захожу в панель администратора, у каждого пользователя появляется одно и то же сообщение: «Неверный формат пароля или неизвестный алгоритм хэширования». кроме суперпользователя (которого я создал в терминале). Я допустил ошибку в части создания пользователя?

Serializers.py

 from rest_framework import serializers
from rest_framework.permissions import IsAuthenticated
from django.db import models
from django.contrib.auth.models import User
from django.contrib.auth import authenticate
from django.contrib.auth.hashers import make_password

class RegisterSerializer(serializers.ModelSerializer):
    class Meta:
        model = User 
        fields = ('id', 'username', 'password')

    def create(self, validated_data):
        user = User.objects.create_user(**validated_data)
        return user

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = '__all__'

    def validate(self, data):
        user = authenticate(**data)
        if user and user.is_active:
            return user
 

Views.py

 from django.shortcuts import render
from rest_framework.response import Response
from rest_framework import generics, permissions, mixins
from django.contrib.auth.models import User
from .serializers import RegisterSerializer

class RegisterAPI(generics.GenericAPIView):
    serializer_class = RegisterSerializer

    def post(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user = serializer.save()
        return Response({
        "message": "User created successfully!"
        })
 

Settings.py

 INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'api',
'rest_framework_simplejwt', 
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_simplejwt.authentication.JWTAuthentication'
        ]
    }
 

РЕДАКТИРОВАТЬ: Я много раз трижды проверял данные для входа, проблема в том, что на 100% я НЕ ввел неправильное имя пользователя/пароль.