2015-01-05 75 views
0

我工作在Django的項目,並嘗試使用內置的觀點在登錄僅適用於管理

django.contrib.auth.views.login

我有

(R '^賬戶/登錄/ $',auth_views.login)

的網址s.py

{% if form.errors %} 
<p>Your username and password didn't match. Please try again.</p> 
{% endif %} 

<form method="post" action="{% url 'django.contrib.auth.views.login' %}"> 
{% csrf_token %} 
<table> 
<tr> 
    <td>{{ form.username.label_tag }}</td> 
    <td>{{ form.username }}</td> 
</tr> 
<tr> 
    <td>{{ form.password.label_tag }}</td> 
    <td>{{ form.password }}</td> 
</tr> 
</table> 

<input type="submit" value="login" /> 
<input type="hidden" name="next" value="{{ next }}" /> 
</form> 

在註冊/ login.html中,django要求使用登錄視圖。

我使用管理頁面驗證了用戶/密碼組合是正確的。在賬戶/登錄頁面中,如果我輸入我的管理員用戶名/密碼,它會登錄我,但不會爲普通用戶登錄。爲什麼會這樣?

回答

0

你不直接使用登錄功能作爲你的視圖功能..和管理頁面正在工作,因爲它不使用您的網址映射。

你需要

#views 
from django.contrib.auth.views import login 
def log_me_in(request): 
    # todos.. authenticattion... 
    login(request, user) 

和網址

(r'^log_me_in/$', 'yourapp.views.log_me_in') 

重要的是命名您的登錄功能一樣login()從權威性..否則,你陷入maximum recursion reached什麼像這樣......意味着他們最終會互相打電話,進入無盡的循環......

just read the docs

+0

感謝您的回覆。我認爲你的方式也可以,但是你確定你不能直接使用django的視圖嗎? https://docs.djangoproject.com/en/1.7/topics/auth/default/#module-django.contrib.auth.views似乎建議你可以。 – wcai

相關問題