Django - authenticate всегда возвращает None

Я пытаюсь создать форму входа для своего сайта, но не могу войти ни в одну существующую учетную запись.

def loginPage(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        
        try:
            user = User.objects.get(username=username)
        except:
            messages.error(request, 'User does not exist')
            
        user = authenticate(request, username=username, password=password)

        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            messages.error(request, 'Invalid username/password')
            
    context = {}
    return render(request, 'base/login_register.html', context)

Даже если я использую правильные учетные данные, он отображает:


    User does not exist
    Invalid username/password

Я также добавил это в свой settings.py:

AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
    )

Я создал эти учетные записи вручную из учетной записи администратора Django, а не с помощью формы регистрации, может ли это быть проблемой?

Я нашел проблему. В html-файле логина мне не хватало name="username" и name="password" в соответствующих input'ах.

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