我正在使用 auth 视图来重置 django 中的密码。由于我已在用户应用程序中声明此视图并使用 appname 作为 URL,因此出现错误。我知道我应该更改 django 预构建模板中的 URL,但我不知道覆盖此类内容的最佳方法。这是我的用户应用程序的 URL.py:app_name = 'users'urlpatterns = [ path('register/', views.register, name='register'), path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'), path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'), path('password-reset/', auth_views.PasswordResetView.as_view( template_name='users/password_reset.html' ), name='password_reset'), path('password-reset/done/', auth_views.PasswordResetDoneView.as_view( template_name='users/password_reset_done.html' ), name='password_reset_done'), path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view( template_name='users/password_reset_confirm.html' ), name='password_reset_confirm'), path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view( template_name='users/password_reset_complete.html' ), name='password_reset_complete'),]这是错误:NoReverseMatch at /users/password-reset/Reverse for 'password_reset_confirm' not found. 'password_reset_confirm' is not a valid view function or pattern name.这是它所指的行:{{ 协议 }}://{{ 域 }}{% url 'password_reset_confirm' uidb64=uid token=token %}
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
也许您需要添加模块名称才能访问它,如下所示:
{% url 'users:password_reset_confirm' %}
https://docs.djangoproject.com/en/3.1/topics/http/urls/#reversing-namespaced-urls
HUX布斯
TA贡献1876条经验 获得超6个赞
我花了一整天的时间才弄清楚:我尽了一切努力来弄清楚这一点,但最终找到了答案
不要将密码重置、密码重置完成、密码重置确认和密码重置完成写在同一个 app_name url_pattern 中
在根项目名称 url_pattern 中写入这些内容的正确方法
添加回答
举报
0/150
提交
取消