You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django密码修改报错Reverse for 'password_change_done' not found怎么解决

错误原因

你在account应用的urls.py中设置了app_name = 'account',为该应用下的所有路由新增了account命名空间。而Django内置的PasswordChangeView默认反向解析跳转目标时,使用的是不带命名空间的password_change_done,和你实际注册的带命名空间的account:password_change_done不匹配,因此抛出反向解析失败的错误。

解决方案

直接在定义PasswordChangeView路由时,手动指定跳转的成功地址即可,修改account/urls.py的对应代码:

# account urls.py
from django.urls import path, include, reverse_lazy
from django.contrib.auth import views as auth_views
from . import views

app_name = 'account'

urlpatterns = [
    #Password Changes URLs
    path('password_change/', auth_views.PasswordChangeView.as_view(
        success_url = reverse_lazy('account:password_change_done')
    ), name='password_change'),
    path('password_change/done/', auth_views.PasswordChangeDoneView.as_view(), name='password_change_done'),
]

修改完成后密码修改逻辑就能正常匹配到跳转路由,不会再抛出解析错误。

内容的提问来源于stack exchange,提问作者TheSunbathingCrow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:45:01