小编典典

Django Admin-更改标题“ Django管理”文本

python

如何更改django管理员标头中的“ Django管理”文本?

“自定义管理员”文档中似乎没有涉及它。


阅读 210

收藏
2020-12-20

共1个答案

小编典典

更新 :如果您使用的是Django1.7+,请参见以下答案。

从Django 1.7开始,您不需要覆盖模板。现在,您可以在自定义AdminSite上实现site_headersite_titleindex_title属性,以便轻松更改管理站点的页面标题和标题文本。创建一个AdminSite子类,并将您的实例挂接到URLconf中:

admin.py:

from django.contrib.admin import AdminSite
from django.utils.translation import ugettext_lazy

class MyAdminSite(AdminSite):
    # Text to put at the end of each page's <title>.
    site_title = ugettext_lazy('My site admin')

    # Text to put in each page's <h1> (and above login form).
    site_header = ugettext_lazy('My administration')

    # Text to put at the top of the admin index page.
    index_title = ugettext_lazy('Site administration')

admin_site = MyAdminSite()

urls.py:

from django.conf.urls import patterns, include
from myproject.admin import admin_site

urlpatterns = patterns('',
    (r'^myadmin/', include(admin_site.urls)),
)

更新:正如oxfn所指出的,您可以简单地site_header在urls.py或admin.py不设置子类的情况下设置AdminSite:

admin.site.site_header = 'My administration'

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.filesystem.Loader已添加到中TEMPLATE_LOADERS

有关更多信息,请参见docssettings.py

2020-12-20