Django的pipe理员 – 更改标题“Djangopipe理”文本

如何更改Djangopipe理标题中的“Djangopipe理”文本?

它似乎没有涵盖在“定制pipe理”文档。

您需要创build自己的pipe理员base_site.html模板来执行此操作。 最简单的方法是创build文件:

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

这应该是一个https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/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中

有关settings.py的更多信息,请参阅http://docs.djangoproject.com/en/dev/ref/settings/

从Django 1.7开始,你不需要重写模板。 您现在可以在自定义AdminSite上实现site_header , site_titleindex_title属性,以便轻松更改pipe理网站的页面标题和标题文本。 创build一个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.pyadmin.py直接设置admin.py而无需AdminSite

 admin.site.site_header = 'My administration' 

有一个简单的方法来设置pipe理网站标题 – 分配给urls.py当前的pipe理实例像这样

 admin.site.site_header = 'My admin' 

或者可以用单独的方法实现一些标题构build魔法

 admin.site.site_header = get_admin_header() 

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

Django 1.8.3中一个简单的完整解决scheme,基于这个问题的答案。

settings.py添加:

 ADMIN_SITE_HEADER = "My shiny new administration" 

urls.py添加:

 from django.conf import settings admin.site.site_header = settings.ADMIN_SITE_HEADER 

在urls.py中,您可以覆盖3个最重要的variables:

 admin.site.site_header = _('My project') admin.site.index_title = _('Features area') admin.site.site_title = _('HTML title from adminsitration') 

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

  1. mkdir locale
  2. ./manage.py makemessages
  3. 编辑locale/en/LC_MESSAGES/django.po ,添加这些行:

     msgid "Django site admin" msgstr "MySite site admin" msgid "Django administration" msgstr "MySite administration" 
  4. ./manage.py compilemessages

请参阅https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files

首先,你想添加templates / admin / base_site.html到你的项目。 这个文件可以被安全地覆盖,因为它是一个django开发者准备用来定制你的pipe理站点的文件。 以下是放入文件的示例:

 {% extends "admin/base.html" %} {% load i18n %} {% block title %}{{ title }} | {% trans 'Some Organisation' %}{% endblock %} {% block branding %} <style type="text/css"> #header { /* your style here */ } </style> <h1 id="site-name">{% trans 'Organisation Website' %}</h1> {% endblock %} {% block nav-global %}{% endblock %} 

这是常见的做法。 但之后我注意到,在主pipe理索引页面上,我仍然留下了一个烦人的“网站pipe理”。 而这个string不在模板内,而是在pipe理视图中设置。 幸运的是,这很容易改变。 假设您的语言设置为英语,请从项目目录运行以下命令:

 $ mkdir locale $ ./manage.py makemessages -l en 

现在打开文件locale / en / LC_MESSAGES / django.po,在标题信息(本例的最后两行)之后加两行,

 "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-04-03 03:25+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" msgid "Site administration" msgstr "Main administration index" 

在此之后,请记住运行此并重新加载您的项目的服务器:

 $ ./manage.py compilemessages 

来源: http : //overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/

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

 admin.site.site_header = 'My Site Admin' 

通过这种方式,您将能够更改Djangopipe理员的标题。 此外,您可以在以下链接阅读更多关于Django Admin的自定义和设置。

Djangopipe理文档

最简单的方法确保你有

 from django.contrib import admin 

然后将这些添加到您主应用程序的url.py的底部

 admin.site.site_title = "Your App Title" admin.site.site_header = "Your App Admin" 

由于我只在我的应用程序中使用pipe理界面,所以我把它放在admin.py中:

 admin.site.site_header = 'My administration' 

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

您只需重写admin/base_site.html模板(从django.contrib.admin.templates复制模板,并放入您自己的pipe理模板目录)并replacebranding模块。

您可以使用AdminSite.site_header更改该文本。 这里是文档