django用户认证怎么办?

时间:2011-03-30 08:49:55

标签: django authentication

我的问题是当我点击我的登录页面中的提交按钮时,它不会检查输入的用户名和密码是否正确用户名和密码匹配。即使我留空了我的用户名和密码字段,然后点击提交按钮重定向到我在html代码(动作)中定义的索引页面如下:

现在我想当我输入username = aa,password = bb然后只有它重定向到索引页面,否则如果用户名密码不正确或未输入,则保留在登录页面。
实际上我是django的新手,甚至我使用了authenticate(... ......),如下所示:

不知道这样做的确切方法。

def login(request):
    template = "../templates/admin/login.html"
    data ={
        }

    user = auth.authenticate(username='aa', password='bb')
    if user is not None and user.is_active:
       auth.login(request, user)
    return render_to_response( template, data, 
                               context_instance = RequestContext( request ) )

    return HttpResponseRedirect('/index/')


<form id="FormName11" action="/index/" method="post" class="prettyformlogin" name="FormName11">
{% csrf_token %}

<table width='448' border='0' cellspacing='2' cellpadding='0'>
<tr> 
    <td><b>Username</b></td>
    <td><input id='username' type='text' name='username'></td>
</tr>
<tr>
    <td><b>Password</b></td>
    <td><input id='password' type='password' name='password'>
    </td>
</tr>
<tr>
    <td></td>
    <td><input type='submit' name='Submit' value='Login'></td>
</tr>
提前

thanx

2 个答案:

答案 0 :(得分:2)

为什么不使用登录?

http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.login

用户肯定存在吗?为什么不尝试一些“打印”来看看发生了什么?

答案 1 :(得分:0)

  

我的问题是当我点击提交时   我的登录页面中的按钮不会   检查输入的用户名和   密码是否正确   用户名和密码匹配。如果   我留空了我的用户名和密码   字段,然后单击提交按钮   重定向到我定义的索引页面   在html代码(动作)如下:

如果我正确地看着这个。你甚至从来没有从表单中获取值...你只是检查明确定义的username ='aa'和password ='bb'

你的views.py中的

user = auth.authenticate(username='aa', password='bb')

您需要查看获取提交的数据:

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    # etc...