【发布时间】:2019-03-17 20:36:04
【问题描述】:
我不断收到此错误:
NoReverseMatch 在 /accounts/password_reset/ 未找到“password_reset_confirm”的反向。 'password_reset_confirm' 不是有效的视图函数或模式名称
以下是我目前的代码:
from django.conf.urls import url
from . import views
from django.urls import include
from django.contrib.auth import views as auth_views
app_name = 'accounts'
urlpatterns = [
url(r'^login/$', views.login_view, name='login_view'),
url(r'^register_view/$', views.register_view, name='register_view'),
url(r'^logout/$', views.logout_view, name="logout_view"),
url(r'^profile_view/$', views.profile_view, name="profile_view"),
url(r'password_change/$',auth_views.PasswordChangeView.as_view(template_name='password_change.html',success_url='/accounts/password_change_done')),
url(r'password_change_done/',auth_views.PasswordChangeDoneView.as_view(template_name='password_change_done.html')),
url(r'password_reset/$',auth_views.PasswordResetView.as_view(template_name='registration/password_reset_form.html',email_template_name='registration/password_reset_email.html',subject_template_name='registration/password_reset_email.txt',success_url='/accounts/password_reset_done/',from_email='mpho.maleka3@gmail.com')),
url(r'password_reset_done/',auth_views.PasswordResetDoneView.as_view(template_name='registration/password_reset_done.html')),
url(r'password_reset_confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',auth_views.PasswordResetConfirmView.as_view(template_name='registration/password_reset_confirm.html',success_url='/accounts/password_reset_confirm/'), name='password_reset_confirm'),
url(r'password_reset_complete/',auth_views.PasswordResetCompleteView.as_view(template_name='registration/password_reset_complete.html')),
]
【问题讨论】:
-
你能分享你的
'registration/password_reset_form.html'文件吗? -
Django 会告诉你在哪个模板和哪一行导致了错误。您需要做的就是将该行从
{% url 'password_reset_confirm' %}编辑为{% url 'accounts:password_reset_confirm' %} -
{% extends 'shop/base.html' %} {% block content %}{% endblock %}
设置你的密码
-
password_change等其他 url 效果好吗? -
action=...中似乎缺少某些内容。