Проблема с формой входа в Django
Views.py
def Tourist_login(request):
if request.method == 'POST':
form = Tourist_login_form(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username,password=password)
print(user)
if user is not None:
login(request,user)
messages.success(request,'logged in')
return redirect('home')
else:
messages.error(request,"Invalid login credentials!")
return redirect('touristlogin')
else:
return redirect('touirstlogin')
else:
form = Tourist_login_form()
return render(request,'accounts/tourist_login.html',{'form':form})
В приведенном выше коде функция authenticate возвращает значение none. Но если я передаю ввод в форму через учетные данные суперпользователя, то она работает нормально. Я не могу понять, почему она не принимает имя пользователя и пароль, переданные пользователем, а принимает только имя пользователя и пароль суперпользователя.
Попробуйте использовать этот способ:
from django.contrib.auth.models import auth
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
messages.success(request,'logged in')
return redirect('home')