UnboundLocalError at /signin/ локальная переменная 'user' ссылается перед присвоением в Django
Функция, позволяющая пользователю войти в систему следующим образом=>
Очевидно, что эта ошибка всплывает
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password =password )
if user is not None:
login(request, user)
return HttpResponseRedirect(reverse("index"))
elif user is None:
return render(request, "covi/signin.html", {
"message": "Invalid username and/or password."
})
else:
return render(request, "covi/signin.html")
Это потому, что
user = authenticate(request, username=username, password =password) запускается только если request.method == 'POST'. Если вы сделаете GET запрос, пользователь не будет назначен.
def login_view(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password =password )
if user is not None:
login(request, user)
return HttpResponseRedirect(reverse("index"))
elif user is None:
return render(request, "covi/signin.html", {
"message": "Invalid username and/or password."
})
return render(request, "covi/signin.html")