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

访问Django内置PasswordChangeView页面提示TemplateDoesNotExist错误如何解决

问题原因
  • 权限校验触发默认登录跳转:Django内置的PasswordChangeView默认要求用户处于登录状态,未登录时会自动重定向到框架默认的登录地址/accounts/login/,而你项目中自定义的登录路径是/login/,没有为/accounts/login/配置对应的视图与模板,因此触发模板不存在错误。
  • 模板目录配置异常(登录后仍报错的排查方向):若你已登录仍出现模板错误,需检查settings.py中TEMPLATES配置项的DIRS参数是否添加了项目根目录的templates路径,Django默认只会扫描各应用下的templates目录,不会主动读取项目根目录的templates文件夹。
解决步骤
  1. 配置自定义登录地址
    在项目settings.py中添加如下配置,指定全局登录跳转路径为你自定义的登录路由:
LOGIN_URL = '/login/'
# 也可以直接写路由名,更规范
# LOGIN_URL = 'login_view'
  1. 校验模板目录配置
    确认settings.py中TEMPLATES配置的DIRS字段包含根目录templates路径,示例如下:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'], # 确保这行存在
        'APP_DIRS': True,
        # 其余配置保持原有即可
    }
]
  1. 可选:自定义密码修改模板路径
    如果你不想使用默认的registration/password_change_form.html路径,也可以在路由中直接指定模板:
path('accounts/password_change/', 
     auth_views.PasswordChangeView.as_view(template_name='your_custom_path.html'), 
     name='password_change'),
  1. 补充后续跳转配置(可选但建议)
    密码修改成功后默认会跳转到password_change_done路由,建议补充对应配置避免404:
path('accounts/password_change/done/', 
     auth_views.PasswordChangeDoneView.as_view(), 
     name='password_change_done'),

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:15:03