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'ах.