帐户/重置/完成django密码重置功能的NoReverseMatch

时间:2017-08-26 20:53:28

标签: python django

我正在使用django(1.10)默认密码重置功能。当我从密码重置表单更改密码时,我收到以下错误。

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

Template error:
In template C:\pyprojects\cias\ciasproj\ciassite\templates\registration\password_reset_complete.html, error at line 5
   Reverse for 'login' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []   1 : {% extends 'base.html' %}
   2 : 
   3 : {% block content %}
   4 :   <p>
   5 :     Your password has been set. You may go ahead and <a href=" {% url 'login' %} ">sign in</a> now.
   6 :   </p>
   7 : {% endblock %}

register / password_reset_complete.html

{% extends 'base.html' %}

{% block content %}
  <p>
    Your password has been set. You may go ahead and <a href="{% url 'login' %}">sign in</a> now.
  </p>
{% endblock %}

accounts / urls.py -

urlpatterns = [
    url(r"^signup/$", views.signup, name="account_signup"),
    #url(r'^login/$', views.login, {'template_name': 'accounts/login.html'}, name='login'),
    url(r'^login/', views.login_view, name='account_login'),
    url(r'^logout/$', auth_views.logout, {'next_page': '/account/login'}, name='logout'),
    url(r'^confirmemail/$', views.confirmemail, name='account_confirmemail'),
    url(r'^activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',views.activate, name='activate'),
    url(r'^activate/',views.activate, name='empty_activate'),
        url(r'^password_reset/$', auth_views.password_reset, name='password_reset'),
    url(r'^password_reset/done/$', auth_views.password_reset_done, name='password_reset_done'),
    url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,23})/$',
        auth_views.password_reset_confirm, name='password_reset_confirm'),
    url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
    auth_views.password_reset_confirm, name='password_reset_confirm'),
    url(r'^reset/done/$', auth_views.password_reset_complete, name='password_reset_complete'),
]

我尝试将html链接修改为

{% url reverse('account_login:login') %}

但这又是另一个错误 -

Could not parse the remainder: '('account_login:login')' from 'reverse('account_login:login')'

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

我觉得你在这里缺少一件简单的事情。无论您在网址列表中给出什么名称,您都可以使用它。如果存在具有已注册命名空间的应用程序,则必须使用该命名空间。

在这种情况下,您已直接定义了这些内容,您应该只以这种方式使用网址。

而不是{%url&#39;登录&#39; %}应该是{%url&#39; account_login&#39; %}。

只是你给url模式的名字。