为什么我自己的template_name不显示,而不是Django中的默认template_name?

问题描述 投票:0回答:1

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

urls.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'),
]

settings.py

STATIC_URL = '/static/'
# Edit the login src url redirect
LOGIN_REDIRECT_URL = 'account:view_profile'
# Edit the login src url redirect in PasswordResetCompleteView
LOGIN_URL = 'account:login_page'
# To activating PasswordResetConfirmView
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

[我需要在此处使用template_name时显示(passwordResetConfirm)自己的template_name,当我从(PasswordResetComplete)获得成功消息时也得到默认的Django模板...

django
1个回答
0
投票

我遇到了同样的问题,尝试了不同的方法后,这才起作用

© www.soinside.com 2019 - 2024. All rights reserved.