Аутентификация возвращает None в django rest frame work API

views.py

@api_view(['POST'])
def login(request):
    data = {}
    email = request.data.get('email')
    password = request.data.get('password')
    user = authenticate(email = email, password = password)
    U = User.objects.get(email=email)
    if user is not None:
        login(request, user)
        data['response'] = 'successfully logged in'
    elif Userprofile.objects.filter(email=email).exists() == False:
        data['response'] = 'user does not exist'
    elif U.is_active == False:
        data['response'] = 'Please verify your email'
    else:
        data['response'] = 'invalid password'
    return JsonResponse(data)
otp=random.randint(11111,99999)
@api_view(['POST'])
def signup(request):
    serializer = UserprofileSerializer(data=request.data)
    data = {}
    if serializer.is_valid():
        name = serializer.validated_data['name']
        email = serializer.validated_data['email']
        phone_number = serializer.validated_data['phone_number']
        password = make_password(serializer.validated_data.get('password'))
        account = Userprofile.objects.create_user(name = name, email = email, phone_number = phone_number, password = password)
        data['response'] = 'successfully registered a new user'
        send_mail(
            'Welcome to Trycompound',
            'Your OTP is '+str(otp),
            EMAIL_HOST_USER,
            [email],
        )
        user = User.objects.get(email=email)
        user.otp = otp
        user.save()
    else:
        data = serializer.errors
    return JsonResponse(data)

Я действительно не могу понять, что не так, потому что я действительно сделал это с обычными шаблонами, и когда я попробовал это с django rest framework, я не могу войти в систему, потому что authenticate возвращает 'None'. и да, пользователь активен, в базе данных написано 1.

Функция

authenticate не вернет ничего, если учетные данные недействительны. Она вернет объект пользователя, если учетные данные действительны. Нажмите здесь для получения дополнительной информации и принимает имя пользователя и пароль как параметры

В этом коде нет проблем, проблема в создании пользователей, я не могу правильно задать пароль.

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