Django authenticate возвращает none, но прекрасно работает в shell
def login_page(request):
if request.method=='POST':
user_name = request.POST.get('username')
user_password = request.POST.get('password')
user =authenticate(request,username=user_name,password=user_password)
print(user)
if user is not None:
login(request,user)
return redirect('/')
else:
messages.info(request,'Invalid user name or password')
return redirect('/login_page')
else:
return render(request,'account/login_page.html')
Вот код, который я использую Функция authenticate не возвращает значение даже при правильном вводе. Я попробовал authenticate в shell для того же ввода и он возвращает значение, как ожидалось, поэтому я не понимаю, почему он не работает для значений из HTML формы.
вот как я сохранил пользователя
user = User.objects.create_user(email=email,first_name = firstname,last_name=lastname,
username=username,password=password1)
user.save()
Команда оболочки, которую я использовал (я сохранил этого пользователя и использую те же учетные данные для аутентификации)
user_name = 'issue'
user_password = '1234a'
user =authenticate(request,username=user_name,password=user_password)
возвращает True on
user is not None