我的登录视图不起作用

时间:2011-10-25 16:01:55

标签: python django

在views.py中

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"/>&nbsp;
                 </td>
             </tr>
             <tr>
                 <td>
                     &nbsp;<label>Password: </label>&nbsp;</td>
                 <td>
                     <input id="password" name="password" type="password" />&nbsp;
                 </td>
             </tr>
             <tr>
                 <td>
     <input type="submit" value="Login" />&nbsp;
                 </td>
                 <td>
                     <input id="Checkbox1" type="checkbox" />&nbsp;
                 remember me</td>
             </tr>
         </table>
     </div>
 </div></center>
 </form>

我输入了一个正确的用户名/密码,但这不会将用户返回给我,实际上我会检查用户是否返回到模板,但它永远不会返回到我的模板,当然它没有错误!它出什么问题了 提前感谢您的帮助

3 个答案:

答案 0 :(得分:7)

请勿使用。

您已创建自己的用户模型,并且似乎以纯文本格式存储密码。这非常危险。不要这样做。

Django有一个内置的用户身份验证框架fully documented here,它可以正确地记录安全密码,并包含登录表单。改用它。即使您需要更多字段,也可以使用内置用户模型并创建包含额外字段的UserProfile模型。

答案 1 :(得分:1)

这个表格实际上有效吗?你需要一个提交按钮。将Button1更改为“提交”类型而不是“按钮”。

要检查的其他事项是您实际上在数据库中有一个用户,并且您正在输入用户名和密码,并且区分大小写。

答案 2 :(得分:1)

您似乎没有检查是否返回了user。要检查是否将user返回到您的模板,请将{{user}}放在模板中的某个位置。