Django 如何更改密码重置表单的页面标题?
我使用的是django附带的默认密码重置表单。通过在URL.py中添加以下代码行,我更改了管理员站点的标题Django 如何更改密码重置表单的页面标题?,django,Django,我使用的是django附带的默认密码重置表单。通过在URL.py中添加以下代码行,我更改了管理员站点的标题 admin.site.site_header = 'My Site Name' 但是,密码rest表单仍然显示“Django Administration”来代替站点标题,如所附图片所示。我如何改变它? 虽然是从admin/base\u site.html扩展而来。但是site\u标题文本似乎没有从视图发送到模板(可能是因为它不是实际管理站点的一部分,或者模板就在那里)。因此,您可以从d
admin.site.site_header = 'My Site Name'
但是,密码rest表单仍然显示“Django Administration”来代替站点标题,如所附图片所示。我如何改变它?
虽然是从admin/base\u site.html
扩展而来。但是site\u标题
文本似乎没有从视图发送到模板(可能是因为它不是实际管理站点的一部分,或者模板就在那里)。因此,您可以从django.contrib.auth.views.PasswordResetView
创建一个新的视图子类,并通过context
传递此信息。试着这样做:
from django.contrib.auth.views import PasswordResetView
from django.contrib import admin
class CustomResetPasswordView(PasswordResetView):
def get_context_data(self, **kw):
context = super().get_context_data(**kw)
context['site_header'] = getattr(admin.sites, 'site_header') # get site header text. For django 2.X it should be getattr(admin.sites.AdminSite, 'site_header')
return context
# your_app/context_processors.py
def admin_header_processor(request):
site_header = getattr(admin.sites, 'site_header') # get site header text. For django 2.X it should be
return {"site_header": site_header}
并在URL中使用它:
path('reset_passowrd/', CustomResetPasswordView.as_view()),
或
编写一个上下文处理器,发送site\u header
,如下所示:
from django.contrib.auth.views import PasswordResetView
from django.contrib import admin
class CustomResetPasswordView(PasswordResetView):
def get_context_data(self, **kw):
context = super().get_context_data(**kw)
context['site_header'] = getattr(admin.sites, 'site_header') # get site header text. For django 2.X it should be getattr(admin.sites.AdminSite, 'site_header')
return context
# your_app/context_processors.py
def admin_header_processor(request):
site_header = getattr(admin.sites, 'site_header') # get site header text. For django 2.X it should be
return {"site_header": site_header}
并将其添加到模板内的上下文处理器中:
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'your_app.context_processors.admin_header_processor',
],