如何更改Django admin头中的“Django administration”文本?

“自定义管理”文档中似乎没有涉及到这一点。


当前回答

有一个简单的方法来设置管理站点头-分配给当前的管理实例在urls.py像这样

admin.site.site_header = 'My admin'

或者你也可以用另一种方法来实现一些创建头部的魔法

admin.site.site_header = get_admin_header()

因此,在简单的情况下,不需要继承AdminSite的子类

其他回答

你只需要覆盖admin/base_site.html模板(从django.contrib.admin.templates中复制模板并放入你自己的管理模板dir中)并替换branding块。

您可以使用AdminSite。Site_header来更改文本。这里是文档

更新:如果你使用的是Django 1.7+,请参阅下面的答案。


2011年的原始答案: 为此,您需要创建自己的管理base_site.html模板。最简单的方法是创建文件:

/<projectdir>/templates/admin/base_site.html

这应该是原始base_site.html的副本,除了放入您的自定义标题:

{% block branding %}
<h1 id="site-name">{% trans 'my cool admin console' %}</h1>
{% endblock %}

为此,你需要为你的项目设置正确的设置,即在settings.py中:

确保/projectdir/templates/被添加到TEMPLATE_DIRS中。 确保django.template.loaders. filessystem .loader被添加到TEMPLATE_LOADERS中。

有关settings.py的更多信息,请参阅文档。

admin.py:

from django.contrib.admin import AdminSite

AdminSite.site_title = ugettext_lazy('My Admin')

AdminSite.site_header = ugettext_lazy('My Administration')

AdminSite.index_title = ugettext_lazy('DATA BASE ADMINISTRATION')

正如您在模板中看到的,文本是通过本地化框架传递的(注意使用了trans模板标记)。您可以对翻译文件进行更改,以覆盖文本,而无需制作自己的模板副本。

mkdir语言环境 。/ jobs makemessages 编辑区域设置/ en / LC_MESSAGES / django。阿宝,加上这些台词: msgstr "Django站点管理" msgstr "MySite站点管理" msgstr "Django管理" msgstr "MySite管理" 。/ jobs compilemessages

看到https://docs.djangoproject.com/en/1.3/topics/i18n/localization/消息文件