没有与Django Auth视图的反向匹配

时间:2016-09-10 19:24:56

标签: python django

我按照Django文档中的示例创建了一个自定义用户模型,现在我正在尝试使用Django身份验证视图但我不断获取NoReverseMatch at /accounts/login/

Reverse for 'django.contrib.auth.views.login' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

这是网址:

from django.contrib.auth import views as auth_views

urlpatterns = [
    url(r'^accounts/login/$', auth_views.login, {'template_name': 'login.html',
        'authentication_form': LoginForm}),
    url(r'^logout/$', auth_views.logout, {'next_page': '/accounts/login'}),
    url(r'^$', home, name="home"),    
    ]

我的模板中有这一行:

<form method="post" action="{% url 'django.contrib.auth.views.login' %}">

1 个答案:

答案 0 :(得分:10)

{% url 'django.contrib.auth.views.login' %}

这是不正确的。我们将此处的名称放在此处,而不是视图的位置。

请参阅https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#url。您需要提供一个登录名称,就像您在家中一样,然后使用它。

正确的方法是: urls.py - &gt;

url(r'^accounts/login/$', auth_views.login, {'template_name': 'login.html','authentication_form': LoginForm}, name="login") ,

模板 - &gt;

<form method="post" action="{% url 'login' %}">