我需要显示我自己的template_name for (passwordResetConfirm),当我在这里使用template_name时,我得到默认的template_name模板,当我从(PasswordResetComplete)那里获得成功的消息时,我的意思也是相同的(默认的template_name模板)。
但是,我没有发现代码错误。
那么,在这种情况下,我如何才能获得自己的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'发布于 2020-01-19 19:28:22
我也有过同样的问题,在尝试不同的事情时,这就是起作用的地方。
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'))我没有像你那样创建自定义类。
https://stackoverflow.com/questions/59805379
复制相似问题