为什么我自己的模板名称没有';是否在django中显示而不是默认模板名称?

为什么我自己的模板名称没有';是否在django中显示而不是默认模板名称?,django,Django,我需要为(passwordResetConfirm)显示我自己的模板名称。当我在这里使用模板名称时,我会得到默认的Django模板。当我从(PasswordResetComplete)获得成功消息时,我也会从同一个地方得到(默认的Django模板)。 但是,我没有收到任何代码错误。那么,在这种情况下,如何获得自己的模板名称呢 url.py from . import views from django.conf.urls import url from django.contrib.auth.v

我需要为(passwordResetConfirm)显示我自己的模板名称。当我在这里使用模板名称时,我会得到默认的Django模板。当我从(PasswordResetComplete)获得成功消息时,我也会从同一个地方得到(默认的Django模板)。
但是,我没有收到任何代码错误。
那么,在这种情况下,如何获得自己的模板名称呢

url.py

from . import views
from django.conf.urls import url
from django.contrib.auth.views import (
LoginView,
logout,
PasswordResetView,
PasswordResetDoneView,
PasswordResetConfirmView,
PasswordResetCompleteView,
    )
from django.core.urlresolvers import reverse_lazy
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
# django\contrib\admin\templates\registration\password_reset_done.html

app_name = 'account'


class PasswordReset(PasswordResetView):
    template_name = 'account/password_reset_form.html'
    success_url = reverse_lazy('account:password_reset_done')
    email_template_name = 'account/reset_password_email.html'


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


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

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


class PasswordResetComplete(PasswordResetCompleteView):
    template_name = 'account/password_reset_complete.html'

urlpatterns = [
    # /account/
    url(r'^$', views.index, name="home"),
    # /account/login/
    url(r'^login/$', LoginView.as_view(template_name='account/login.html'), name='login_page'),
    # /account/logout/
    url(r'^logout/$', logout, {'template_name': 'account/logout.html'}, name='logout'),
    # /account/register/
    url(r'^register/$', views.register, name='register'),
    # /account/profile/
    url(r'^profile/$', views.view_profile, name='view_profile'),
    # /account/profile/edit/
    url(r'^profile/edit/$', views.edit_profile, name='edit_profile'),
    # /account/change-password/
    url(r'^change-password/$', views.change_password, name='change_password'),
    # /account/password-reset/
    url(r'^password-reset/$', PasswordReset.as_view(), name='password_reset'),
    # /account/password-reset/done/
    url(r'^password-reset/done/$', PasswordResetDone.as_view(), name='password_reset_done'),
    # /account/password-reset/confirm/
    url(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z]+)/(?P<token>.+)/$', PasswordResetConfirm.as_view(), name='password_reset_confirm'),
    # /account/password-reset/complete/
    url(r'^password-reset/complete/$', PasswordResetComplete.as_view(), name='password_reset_complete'),
]
  • 这张图片解释了我拥有的文件
  • 此图显示密码重置页面,它正在工作

我也有同样的问题,在尝试不同的东西时,这就是成功的原因

url(r'password_reset/$', auth_views.PasswordResetView.as_view(template_name='password_reset.html', email_template_name='registration/password_reset_email.html',                                                                  subject_template_name='registration/password_reset_email.html', success_url='/password_reset_done/', from_email='your@email.com')),
url(r'password\u reset\u confirm/(?P[0-9A-Za-z\-])/(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$,auth_view.PasswordResetConfirmView.as_视图(template_name='registration/password\u reset\u confirm.html',success_url='registration/password\u reset\u complete.html'))

我没有像您那样创建自定义类。

您是在谈论页面标题吗?不,我是在谈论PasswordResetConfirm和PasswordResetComplete的模板名称。。当我定义需要显示的模板名称时,我的页面不会显示。相反,在Django中显示默认页面。是的,此路径是Django本身的默认路径。如果我想获得自己的路径,该怎么办?我一直在寻找这个问题,所有的答案都和你一样。但当我像教程一样工作时,我需要做的就是跟随它。我不知道我们之间有什么不同?我的意思是,我和tutorial bothI确实创建了自定义类,只是为了使URL路径更清晰,可读性更强。我遵循的教程实际上是按照你告诉我的做的,但是当我尝试阅读整个路径时,它太难了。那么这是否意味着我显示的代码对你不起作用?你到底陷在哪里了?不,我不是那个意思。我的意思是,我需要使用(确认并完成)模板的URL路径,就像我以前在(重置和重置完成视图)中创建的一样。您可以看到我之前所做的。我不想运行Django的默认模板路径。(reset and resetDone)中的模板已经运行并显示,与(confirm and complete template)中发生的情况不同,后者是在默认Django中查看的,而不是我自己的模板
url(r'password_reset/$', auth_views.PasswordResetView.as_view(template_name='password_reset.html', email_template_name='registration/password_reset_email.html',                                                                  subject_template_name='registration/password_reset_email.html', success_url='/password_reset_done/', from_email='your@email.com')),
    url(r'password_reset_done/', auth_views.PasswordResetDoneView.as_view(template_name='registration/password_reset_done.html')),
    url(r'password_reset_confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', auth_views.PasswordResetConfirmView.as_view(template_name='registration/password_reset_confirm.html', success_url='registration/password_reset_complete.html'))