2015-02-11 121 views
1

我想让自己的网站登录django 1.7。 但是当我得到日志将被带到一个页面登录,并得到一个消息,说没有这样的用户。我的用户在数据库中。用户登录时不存在django

VIEW

def my_login(request): 
    if request.method == 'POST': 
     username = request.POST.get('username', '') 
     password = request.POST.get('password', '') 
     user = authenticate(username=username, password=password) 
     if user is not None: 
      if user.is_active: 
       login(request, user) 
       return HttpResponseRedirect('/') 
     else: 
      print "User does not exist" 
    return render_to_response('tests/login1.html', context_instance=RequestContext(request)) 

模板

<form class="form-horizontal" name="LoginForm" action="./" method="post"> 
    {% csrf_token %} 
    <div class="control-group"> 
     <label class="control-label" for="username">Username</label> 
     <div class="controls"> 
      <input type="text" id="username" value="" placeholder="Username"> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="password">Password</label> 
     <div class="controls"> 
      <input type="password" name="password" value="" id="password" placeholder="Password"> 
     </div> 
    </div> 
    <div class="control-group"> 
     <div class="controls"> 
      <button type="submit" class="btn">Login</button> 
     </div> 
    </div> 
</form> 
+0

你'身份验证()''返回None'。但是你没有提供它的代码。 – 2015-02-11 11:29:09

+0

@KlausD。我知道它会返回None,但为什么?它就是工作。 – mark 2015-02-11 11:31:27

+0

它可能是你比较字符串密码和哈希版本..你有没有验证用户存在? User.objects.filter(username = username)'在控制台中? – Sayse 2015-02-11 11:33:27

回答

3

因为name属性在您的input标签丢失你是不是发送username到视图。相反的:

<input type="text" id="username" value="" placeholder="Username"> 

试试这个:

<input type="text" name="username" id="username" value="" placeholder="Username"> 
+0

非常感谢:) – mark 2015-02-11 12:00:17