TemplateDoesNotExist 在 /account/password_reset_confirm/MQ/set-password/registrationpassword_reset_co

Posted

技术标签:

【中文标题】TemplateDoesNotExist 在 /account/password_reset_confirm/MQ/set-password/registrationpassword_reset_confirm.html【英文标题】:TemplateDoesNotExist at /account/password_reset_confirm/MQ/set-password/ registrationpassword_reset_confirm.html 【发布时间】:2021-05-12 16:52:01 【问题描述】:

我正在使用 Django 身份验证系统来重置用户密码。我创建了一个名为 account 的应用,在 urls.py 模块中添加了以下代码:

from django.urls import path, include
from django.contrib.auth import views as auth_views
from . import views
urlpatterns=[
    path('password_reset/',
        auth_views.PasswordResetView.as_view(),
        name='password_reset'),
    path('password_reset/done/',
        auth_views.PasswordResetDoneView.as_view(),
        name='password_reset_done'),
    path('password_reset_confirm/<uidb64>/<token>/',
        auth_views.PasswordResetConfirmView.as_view(
        template_name='registration/password_reset_confirm.html'),
        name='password_reset_confirm'),
    path('reset/done/',
        auth_views.PasswordResetCompleteView.as_view(),
        name='password_reset_complete'),
]

我在应用的模板/注册库中创建了所有需要的模板: password_reset_form.html、password_reset_done.html、password_reset_confirm.html、password_reset_complete.html、

我还将电子邮件设置添加到我的项目中:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '********'
EMAIL_HOST_PASSWORD = '**********'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

我运行服务器,在密码重置页面上输入验证用户的电子邮件,之后,我在收件箱中收到密码重置链接,但是当我点击它时,会发生 TemplateDoesNotExist 异常。

【问题讨论】:

我不确定。但是尝试将模板重命名为模板。 抱歉,我拼错了那个模板,我的应用程序模板库中有 's'。@Biplove Lamichane 我删除了路径视图模板,'template_name='registration/password_reset_confirm.html'),',然后确认密码链接将带我到 Django 管理页面进行密码重置确认,确保它有效但我不希望这样,这就是我设置密码重置确认模板的原因。 我在 YouTube 上观看了 Corey Schafer 的全功能 Web 应用第 12 部分视频 - 电子邮件和密码重置 youtube.com/… 显示你的 settings.py 模板 【参考方案1】:

我在https://docs.djangoproject.com/en/3.1/topics/auth/default/#built-in-auth-views 阅读了使用 Django 身份验证系统的 Django 文档。 然后我把模板名password_reset_confirm.html改成password-reset-confirm.html,不知怎么的!

【讨论】:

【参考方案2】:

“注册”是您放置所有模板文件的文件夹的名称吗?如果是,所有的 as_view() 都应该在其中包含 template_name 例如auth_views.PasswordResetView.as_view(template_name='registration/password_reset_form.html'), name='password_reset')

【讨论】:

以上是关于TemplateDoesNotExist 在 /account/password_reset_confirm/MQ/set-password/registrationpassword_reset_co的主要内容,如果未能解决你的问题,请参考以下文章

在 / 处获取 TemplateDoesNotExist

TemplateDoesNotExist :在 Django 上未检测到模板

Django 管理站点:TemplateDoesNotExist?

TemplateDoesNotExist at / Home.html 异常类型:TemplateDoesNotExist

TemplateDoesNotExist 在 /polls/

Pythonanywhere 中的 TemplateDoesNotExist 错误