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

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


当前回答

一个简单的方法是在项目文件夹中的urls.py文件中包含以下代码。

 in urls.py add 

  admin.site.site_header  =  "Site Header here"  
  admin.site.site_title  =  "Side title"
  admin.site.index_title  =  "Index title"

例如:

from django.contrib import admin
from django.urls import path
from django.conf.urls import include
from django.conf.urls.static import static
from django.conf import settings


admin.site.site_header  =  "Hadramawt Kitchen"  
admin.site.site_title  =  "Hadramawt Kitchen"
admin.site.index_title  =  "Hadramawt Admin"

urlpatterns = [
  path('admin/', admin.site.urls),
  path('', include('food_products.urls' )),
  path('categories', include('categories.urls' )),
  path('news', include('news.urls')),
  path('weeklyOffer', include('weekly_offer.urls'))
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

其他回答

从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'

正如您在模板中看到的,文本是通过本地化框架传递的(注意使用了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/消息文件

从Django 2.0开始,你只需要在url.py中添加一行代码并更改名称。

# url.py

from django.contrib import admin 
admin.site.site_header = "My Admin Central" # Add this

对于较旧版本的Django。(<1.11或更早的版本),您需要编辑admin/base_site.html

改变这一行

{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}

to

{% block title %}{{ title }} | {{ site_title|default:_('Your Site name Admin Central') }}{% endblock %}

你可以检查你的django版本

django-admin --version

你不需要为这项工作更改任何模板,你只需要更新你的项目的settings.py。转到settings.py的底部并定义它。

admin.site.site_header = 'My Site Admin'

通过这种方式,你可以改变Django管理员的标题。此外,你可以在下面的链接中阅读更多关于Django Admin定制和设置的内容。

Django管理文档

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