django.contrib.auth.views.login什么都不做,为什么?

时间:2013-10-08 13:18:31

标签: python django django-authentication

当我尝试使用@login_required转到视图的网址时,它会将我重定向到登录表单。但渲染的表单没有action=属性,当我点击提交按钮时没有任何反应。但是当我去/admin/时,我得到了工作登录表单。以这种方式登录后,所有视图都正常工作。我正在使用admin_bootstrap所以它是不同的登录表单。但为什么默认的那种行为呢?

相关代码:

mySubApp / views.py

@login_required
def index(request):
    user = request.user
    return HttpResponse("Hello, world. You're at index.")

mainApp / urls.py

#login
url(r'^login/$', 'django.contrib.auth.views.login', name='LogMeIn'),

#mySubApp
url(r'^subapp/', include('mySubApp.urls')),

mySubApp / urls.py

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
)

settings.py

LOGIN_URL = 'LogMeIn'

我是否需要创建自定义登录表单才能使其正常运行?

1 个答案:

答案 0 :(得分:5)

使用身份验证视图时,您必须define your own templates(defualt不提供这些视图):

  

Django提供了几个可用于处理登录,注销和密码管理的视图。这些使用了股票身份证明表格,但您也可以传递自己的表格。

     

Django没有为身份验证视图提供默认模板 - 但是下面的每个视图都记录了模板上下文。

所以创建一个registration/login.html

<form action="{% url auth:login %}" method="post">{% csrf_token %}
  {{ form.as_p }}
  <input type="submit" value="Submit" />
</form>
相关问题