2015-01-05 44 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

相关问题