:
def login(request):
if 'username' in request.POST and 'password' in request.POST:
user=User.objects.get(Username__exact=request.POST['username'],Password__exact=request.POST['password'])
request.session['username']=user.Username
request.session['lastlogin']=user.Lastlogin
return render_to_response('airAgency/login.html',{'user':user})
return render_to_response('airAgency/login.html')
在我的模板中:
<form action="." method="POST" style="font-family: Tahoma; font-size: 12px">
<center><div dir="rtl" style="width:250px; height: 85px;">
<div style="float:right;">
<table style="width: 100%;">
<tr>
<td>
UserName :
</td>
<td>
<input id="username" name="username" type="text"/>
</td>
</tr>
<tr>
<td>
<label>Password: </label> </td>
<td>
<input id="password" name="password" type="password" />
</td>
</tr>
<tr>
<td>
<input type="submit" value="Login" />
</td>
<td>
<input id="Checkbox1" type="checkbox" />
remember me</td>
</tr>
</table>
</div>
</div></center>
</form>
我输入了一个正确的用户名/密码,但这不会将用户返回给我,实际上我会检查用户是否返回到模板,但它永远不会返回到我的模板,当然它没有错误!它出什么问题了 提前感谢您的帮助
答案 0 :(得分:7)
请勿使用。
您已创建自己的用户模型,并且似乎以纯文本格式存储密码。这非常危险。不要这样做。
Django有一个内置的用户身份验证框架fully documented here,它可以正确地记录安全密码,并包含登录表单。改用它。即使您需要更多字段,也可以使用内置用户模型并创建包含额外字段的UserProfile模型。
答案 1 :(得分:1)
这个表格实际上有效吗?你需要一个提交按钮。将Button1更改为“提交”类型而不是“按钮”。
要检查的其他事项是您实际上在数据库中有一个用户,并且您正在输入用户名和密码,并且区分大小写。
答案 2 :(得分:1)
您似乎没有检查是否返回了user
。要检查是否将user
返回到您的模板,请将{{user}}
放在模板中的某个位置。