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

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


当前回答

简单方法是在url.py中添加以下代码

    urlpatterns = [
    #Your URLS here
    path('admin/', admin.site.urls),
]

admin.site.site_header = 'SiteName Admin'
admin.site.site_title  = 'SiteName'
admin.site.index_title   = 'Admin'

其他回答

简单方法是在url.py中添加以下代码

    urlpatterns = [
    #Your URLS here
    path('admin/', admin.site.urls),
]

admin.site.site_header = 'SiteName Admin'
admin.site.site_title  = 'SiteName'
admin.site.index_title   = 'Admin'

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

从Django 1.7开始,你不需要重写模板。现在,您可以在自定义AdminSite上实现site_header、site_title和index_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所指出的,你可以直接在urls.py或admin.py中设置site_header,而不需要子类化AdminSite:

admin.site.site_header = 'My administration'

因为我只在我的应用程序中使用管理界面,我把这个放在admin.py中:

admin.site.site_header = 'My administration'

对于Django 2.1.1,在urls.py中添加以下行

from django.contrib import admin

# Admin Site Config
admin.sites.AdminSite.site_header = 'My site admin header'
admin.sites.AdminSite.site_title = 'My site admin title'
admin.sites.AdminSite.index_title = 'My site admin index'