【问题标题】:Django Admin. Change the title of app pageDjango 管理员。更改应用页面的标题
【发布时间】:2020-05-08 08:36:43
【问题描述】:

每个应用页面的默认标题是:

verbose_name + "administration"

我怎样才能改变它?

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    不幸的是,目前 Django 没有提供一种干净的方法来覆盖这个标题文本,因为它是硬编码在 django.contrib.admin.sites.AdminSite.app_index 方法中的。

    但是,如果您确实需要这样做,您可以覆盖此方法并将默认标题替换为您的文本。

    如果您还没有使用它,您需要使用自己的自定义 AdminSite。因此,您需要更改您的 urls.py 以指向您的自定义类而不是默认的 django 管理 url,并且您还需要在您的类中注册您的模型,而不是默认站点。

    类 MyAdminSite(admin.AdminSite):

    def app_index(self, request, app_label, extra_context=None):
        response: TemplateResponse = super().app_index(request, app_label, extra_context)
        response.context_data['title'] = 'Your header goes here;
        return response
    

    一定要查看原始方法代码,因为在不同的 Django 版本中可能会有所不同。上面提供的此代码适用于 Django 3.2.3。

    【讨论】:

      【解决方案2】:

      你可以考虑在你的admin.py中使用:

      admin.site.site_title = "My DEBUG Panel"
      

      或类似admin.pysettings.py 中的标头:

      ADMIN_SITE_HEADER = "My DEBUG Panel"
      

      【讨论】:

      • 它没有回答问题,因为它是关于应用程序管理页面,而不是关于索引页面
      最近更新 更多