我按照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' %}">
答案 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' %}">