2015-02-11 116 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