Как исправить ошибку AttributeError в объекте /login/ 'NoneType' не имеет атрибута 'lower'
Я пытаюсь создать форму входа в Django. В этой форме есть 2 поля, имя пользователя и пароль для входа. Теперь я использовал lower() во время получения имени пользователя. Посмотрите на код ниже. Я использовал lower(), потому что если пользователь введет букву в верхнем регистре, у него не возникнет никаких проблем.
Вот код
def loginForm(request):
page = 'login'
if request.user.is_authenticated: #if user is already login, restricted to visit the login page again
return redirect('home')
if request.method == 'POST':
username = request.POST.get('username').lower()
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 or Password')
context = {'page':page}
return render(request, 'base/register_login.html',context)
Вот SS ошибки... Скриншот ошибки в коде
Пожалуйста, сообщите мне, как я могу решить эту ошибку.
Похоже, что username отсутствует в данных, когда вы публикуете данные в представлении.
Простой способ исправить эту ошибку - установить другое значение по умолчанию для username, например, так:
username = request.POST.get('username', '').lower()