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")   
Вернуться на верх