我正在使用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')'
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:2)
我觉得你在这里缺少一件简单的事情。无论您在网址列表中给出什么名称,您都可以使用它。如果存在具有已注册命名空间的应用程序,则必须使用该命名空间。
在这种情况下,您已直接定义了这些内容,您应该只以这种方式使用网址。
而不是{%url&#39;登录&#39; %}应该是{%url&#39; account_login&#39; %}。
只是你给url模式的名字。