【问题标题】:How to change page title of password reset form?如何更改密码重置表单的页面标题?
【发布时间】:2018-12-01 15:12:39
【问题描述】:

我正在使用 django 附带的默认密码重置表单。我通过在 urls.py 中添加以下代码行来更改管理站点的标题

admin.site.site_header = 'My Site Name'

但是,密码表格仍然显示“Django Administration”代替站点标题,如附图所示。我该如何改变它? Password Reset Form

【问题讨论】:

    标签: django


    【解决方案1】:

    虽然reset_password_form.html 是从admin/base_site.html 扩展而来的。但似乎site_header 文本没有从视图发送到模板(可能是因为它不是实际管理站点的一部分,或者模板是出于示例目的)。因此,您可以从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
    

    并在您的网址中使用它:

    path('reset_passowrd/', CustomResetPasswordView.as_view()),
    

    编写一个发送site_header的上下文处理器,像这样:

    # 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 内的TEMPLATES

    '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',
    ],
    

    【讨论】:

    • site_headerAdminSite 的属性
    • 上下文处理器对我来说就像一个魅力。谢谢!
    • 对于上下文处理器,导入是from django.contrib import admin包含属性的对象是admin.site,而不是admin.sites
    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2022-10-25
    • 2013-03-04
    • 1970-01-01
    相关资源
    最近更新 更多