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

Django自定义PasswordResetConfirm/Complete模板不生效问题求助

解决Django PasswordResetConfirm/Complete自定义模板不生效问题

先梳理下你代码里的几个关键问题,逐个修复就能解决模板不生效的情况:

1. 移除PasswordResetConfirm类里的多余自定义方法

你的PasswordResetConfirm类里添加了这个不必要的方法:

def func(self, request):
    return render(request, self.template_name)

PasswordResetConfirmView本身已经实现了完整的视图逻辑(包含表单验证、密码重置处理等),你自定义的这个func方法会打乱原视图的执行流程,导致模板无法正确加载。直接删除这个方法,只保留必要的配置即可:

class PasswordResetConfirm(PasswordResetConfirmView):
    success_url = reverse_lazy('account:password_reset_complete')
    template_name = 'account/password_reset_confirm.html'

2. 修正PasswordResetDone的无效配置

你在PasswordResetDone类里设置了success_url,但PasswordResetDoneView是纯展示类视图,不需要跳转逻辑,这个配置完全没用,还可能引发潜在问题,直接删掉:

class PasswordResetDone(PasswordResetDoneView):
    template_name = 'account/password_reset_done.html'

3. 确认模板路径与TEMPLATES配置

确保模板文件的存放位置完全正确:

  • 在account应用下,要有templates/account文件夹,password_reset_confirm.html和password_reset_complete.html必须放在这个路径下
  • 检查settings.py里的TEMPLATES配置,确认APP_DIRS设置为True,这样Django才会自动搜索每个应用的templates目录:
TEMPLATES = [
    {
        ...
        'APP_DIRS': True,
        ...
    },
]

4. 清理缓存并重新测试

开发环境下Django可能会缓存模板,先重启Django服务器;如果是生产环境,可以执行python manage.py clearcache(Django 4.0+版本)或者手动清理缓存目录。

完成以上修改后,再测试密码重置流程,PasswordResetConfirm和PasswordResetComplete的自定义模板应该就能正常生效了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:32:32