[英]UnboundLocalError at /signin/ local variable 'user' referenced before assignment in Django
Obviously this error pops:显然这个错误弹出:
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")
It's because user = authenticate(request, username=username, password =password)
runs only if request.method == 'POST'
.这是因为user = authenticate(request, username=username, password =password)
仅在request.method == 'POST'
时运行。 If you do a GET request user won't be assigned.如果您执行 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.