django.urls.exceptions.NoReverseMatch:反向'password_reset_confirm'

问题描述 投票:-1回答:1

我的urls.py文件代码:

from django.urls import path
from django.conf.urls import url
from . import views
from django.contrib.auth.views import PasswordResetView,PasswordResetDoneView,PasswordResetConfirmView

app_name = 'user'

urlpatterns = [
   url('^login/$',views.user_login,name="user_login"),
   url('^logout/$',views.user_logout,name="user_logout"),
   url('^password-reset/$',PasswordResetView.as_view(template_name='user/password_reset.html'),name="password_reset"),
   url('^password-reset/done/$',PasswordResetDoneView.as_view(template_name='user/password_reset_done.html'),name="password_reset_done"),
   url('^password-reset-confirm/<uidb64>/<token>/$',PasswordResetConfirmView.as_view(template_name='user/password_reset_confirm.html'),name="password_reset_confirm"),
   url('^home/$',views.register,name="register"),
   url('^manage_address/$',views.manage_address,name="manage_address"),
   url('^delete_address/(?P<address_id>[0-9]+)/$',views.delete_address,name="delete_address"),
   url('^contact_support/$',views.contact_support,name="contact_support"),
]

错误回溯:

raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'password_reset_confirm' not found. 'password_reset_confirm' is not a valid view function or pattern name.
[25/Feb/2019 23:10:30] "POST /password-reset/ HTTP/1.1" 500 183309
django django-urls django-authentication
1个回答
0
投票

正在逆转password_reset_confirm的代码并不期望您使用命名空间。

最简单的解决方案是删除app_name = 'user',或将密码重置URL模式移动到不设置urls.py的其他app_name

如果必须使用命名空间,则需要更改视图/模板以在任何反转URL的位置使用users命名空间。这是非常复杂的,因为有几个地方你必须这样做,以使密码重置过程工作。

© www.soinside.com 2019 - 2024. All rights reserved.