【发布时间】:2020-05-08 08:36:43
【问题描述】:
每个应用页面的默认标题是:
verbose_name + "administration"
我怎样才能改变它?
【问题讨论】:
标签: django django-admin
每个应用页面的默认标题是:
verbose_name + "administration"
我怎样才能改变它?
【问题讨论】:
标签: django django-admin
不幸的是,目前 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。
【讨论】:
你可以考虑在你的admin.py中使用:
admin.site.site_title = "My DEBUG Panel"
或类似admin.py 或settings.py 中的标头:
ADMIN_SITE_HEADER = "My DEBUG Panel"
【讨论】: