我的Django登录有问题。
下面的if语句(如果user不是None :)始终解析为false,因此移至else。
我不确定为什么,我将不胜感激
谢谢
观点
def index(request):
return render(request, 'home.html', {})
def login_user(request):
if request.method == 'POST':
user = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=user, password=password)
if user is not None:
login(request, user)
messages.success(request, ('You are logged in'))
return redirect('index')
else:
messages.success(request, ('Login failed'))
return redirect('login')
else:
return render(request, 'login.html', {})
这是登录表单:
<form name="form1", id="form1" method="post">
{% csrf_token %}
<div class="form-group">
<input type="text" class="form-control" id="user" aria-describedby="emailHelp" placeholder="Enter email">
</div>
<div class="form-group">
<input type="password" class="form-control" id="password" placeholder="Password">
</div>
<button type="submit" class="btn btn-danger">Login</button>
</form>
您需要为您的<input>
元素赋予name
属性,以便可以在Python代码中识别它们。
<input name="username" type="text" class="form-control" id="user" aria-describedby="emailHelp" placeholder="Enter email">
...
<input name="password" type="password" class="form-control" id="password" placeholder="Password">
在name
必须匹配request.POST.get(<this>)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句