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)),
)
14 回答
对于Django 2.1.1,将以下行添加到
urls.py
您只需覆盖
admin/base_site.html
模板(从django.contrib.admin.templates
复制模板并放入您自己的管理模板目录)并替换branding
块 .您无需为此工作更改任何模板,只需更新项目的
settings.py
即可 . 转到settings.py
的底部并定义它 .通过这种方式,您将能够更改Django管理员的标头 . 此外,您可以在以下链接上阅读有关Django Admin自定义和设置的更多信息 .
Django Admin Documentation
您可以使用
AdminSite.site_header
更改该文本 . 这是docsUpdate :如果您使用的是Django 1.7,请参阅answer below .
2011年的原始答案:您需要创建自己的管理base_site.html模板才能执行此操作 . 最简单的方法是创建文件:
这应该是https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/base_site.html的副本 - 除了输入您的自定义 Headers :
为此,您需要为项目设置正确的设置,即在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_title和index_title属性,以便轻松更改管理站点的页面 Headers 和 Headers 文本 . 创建一个AdminSite子类并将您的实例挂钩到您的URLconf:
admin.py:
urls.py:
Update :正如oxfn所指出的那样,您可以直接在
urls.py
或admin.py
中直接设置site_header而无需子类化AdminSite
:有一种简单的方法可以设置管理站点 Headers - 像这样将它分配给_972779中的当前管理实例
或者可以在单独的方法中实现一些 Headers 构建魔法
因此,在简单的情况下,不需要子类
AdminSite
基于这个问题的答案,Django 1.8.3中的一个简单的完整解决方案 .
在
settings.py
添加:在
urls.py
添加:在urls.py中,您可以覆盖3个最重要的变量:
参考:Django documentation on these attributes .
最简单的方法就是确保你拥有它
然后只需在主应用程序的
url.py
底部添加这些内容正如您在templates中看到的那样,文本是通过本地化框架提供的(请注意使用
trans
模板标记) . 您可以更改翻译文件以覆盖文本,而无需创建自己的模板副本 .mkdir locale
./manage.py makemessages
编辑
locale/en/LC_MESSAGES/django.po
,添加以下行:./manage.py compilemessages
见https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files
首先,您想要将templates / admin / base_site.html添加到您的项目中 . 这个文件可以安全地被覆盖,因为它是django开发人员用于定制管理站点的确切目的的文件 . 以下是放入文件内容的示例:
这是常见的做法 . 但在此之后我注意到我仍然在主管理员索引页面上留下了令人讨厌的“站点管理” . 并且此字符串不在任何模板内,而是设置在管理视图中 . 幸运的是,它很容易改变 . 假设您的语言设置为英语,请从项目目录运行以下命令:
现在打开文件locale / en / LC_MESSAGES / django.po并在 Headers 信息后添加两行(本例的最后两行)
在此之后,请记住运行它并重新加载项目的服务器:
来源:http://overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/
admin.py:
由于我只在我的应用程序中使用管理界面,我把它放在admin.py中: