簡體   English   中英

在 Django 中分配之前引用 /signin/ 局部變量“用戶”處的 UnboundLocalError

[英]UnboundLocalError at /signin/ local variable 'user' referenced before assignment in 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")   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM