Python Django管理-更改标题';Django管理局';文本
如何更改Django admin标题中的“Django administration”文本Python Django管理-更改标题';Django管理局';文本,python,django,django-admin,Python,Django,Django Admin,如何更改Django admin标题中的“Django administration”文本 “定制管理员”文档中似乎没有介绍它。您只需覆盖admin/base\u site.html模板(从django.contrib.admin.templates复制模板并放入您自己的管理员模板目录)并替换品牌块。更新:如果您使用的是Django 1.7+,请参阅 2011年的原始答复: 要做到这一点,您需要创建自己的adminbase\u site.html模板。最简单的方法是创建文件: /<pro
“定制管理员”文档中似乎没有介绍它。您只需覆盖
admin/base\u site.html
模板(从django.contrib.admin.templates
复制模板并放入您自己的管理员模板目录)并替换品牌
块。更新:如果您使用的是Django 1.7+,请参阅
2011年的原始答复: 要做到这一点,您需要创建自己的admin
base\u site.html
模板。最简单的方法是创建文件:
/<projectdir>/templates/admin/base_site.html
{% 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 %}
要使其工作,您需要为项目设置正确的设置,即在settings.py
:
- 确保将
添加到/projectdir/templates/
模板目录中
- 确保将
添加到django.template.loaders.filesystem.Loader
中template\u loaders
trans
模板标记的使用)。您可以对翻译文件进行更改以替代文本,而无需制作自己的模板副本
mkdir语言环境
/manage.py makemessages
locale/en/LC_MESSAGES/django.po
,添加以下行:
msgid "Django site admin"
msgstr "MySite site admin"
msgid "Django administration"
msgstr "MySite administration"
/manage.py编译消息
请参见首先,您应该向项目中添加模板/admin/base\u site.html。这个文件可以被安全地覆盖,因为Django开发人员打算将其用于定制您的管理站点。下面是一个在文件中放置内容的示例:
/<projectdir>/templates/admin/base_site.html
{% 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 %}
现在打开文件locale/en/LC_MESSAGES/django.po,在头信息后添加两行(本例的最后两行)
来源:从Django 1.7开始,您不需要覆盖模板。您现在可以在自定义页面上实现、和属性,以便轻松更改管理站点的页面标题和标题文本。创建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()
from django.conf.urls import patterns, include
from myproject.admin import admin_site
urlpatterns = patterns('',
(r'^myadmin/', include(admin_site.urls)),
)
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')
更新:正如oxfn所指出的,您只需在url.py
或admin.py
中直接设置
admin.site.site_header = 'My administration'
有一种简单的方法可以设置管理员站点标题-将其分配给
url.py中的当前管理员实例,如下所示
admin.site.site_header = 'My admin'
或者可以在单独的方法中实现一些头部构建魔法
admin.site.site_header = get_admin_header()
因此,在简单的情况下,不需要在Django 1.8.3中根据这个问题的答案将一个简单的完整解决方案子类化
在settings.py
中添加:
ADMIN_SITE_HEADER = "My shiny new administration"
from django.conf import settings
admin.site.site_header = settings.ADMIN_SITE_HEADER
在url.py中添加:
ADMIN_SITE_HEADER = "My shiny new administration"
from django.conf import settings
admin.site.site_header = settings.ADMIN_SITE_HEADER
在urls.py
中,您可以覆盖3个最重要的变量:
from django.contrib import admin
admin.site.site_header = 'My project' # default: "Django Administration"
admin.site.index_title = 'Features area' # default: "Site administration"
admin.site.site_title = 'HTML title from adminsitration' # default: "Django site admin"
参考:。由于我只在我的应用程序中使用管理界面,所以我将其放在admin.py中:
admin.site.site_header = 'My administration'
您无需更改此工作的任何模板,只需更新项目的settings.py
。转到settings.py
的底部,并定义此项
admin.site.site_header = 'My Site Admin'
通过这种方式,您将能够更改Django管理员的标题。此外,您可以在下面的链接上阅读更多关于Django管理员自定义和设置的信息
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()
from django.conf.urls import patterns, include
from myproject.admin import admin_site
urlpatterns = patterns('',
(r'^myadmin/', include(admin_site.urls)),
)
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')
最简单的方法
确保你有
from django.contrib import admin
然后只需将这些添加到主应用程序的url.py
底部
admin.site.site_title = "Your App Title"
admin.site.site_header = "Your App Admin"
您可以使用AdminSite.site\u标题
更改该文本。以下是Django 2.1.1的,在url.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'
有两种方法可以做到这一点:
1] 通过覆盖django/contrib/admin/templates/admin/base\u site.html中的base\u site.html
:
以下是base\u site.html
的内容:
{% extends "admin/base.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}
{% block nav-global %}{% endblock %}
推荐使用此方法,因为我们可以更改站点标题、站点标题和索引标题,而无需从Django 2.0编辑base\u site.html
,您只需在url.py
中添加一行即可更改名称
#url.py
从django.contrib导入管理
admin.site.site_header=“我的管理中心”#添加此
对于较旧版本的Django。(只需转到admin.py文件并在文件中添加以下行:
admin.site.site\u header=“My Administration”
您可以在主url.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'
您可以在要显示的引号中添加文本
要替换文本Django admin,请使用admin.site.site\u header=“”
要替换文本“站点管理”,请使用admin.Site.Site\u title=“”
要替换站点名称,可以使用admin.site.index\u title=“”
要替换“查看站点”按钮的url,您可以使用admin.site.site\u url=“”
希望我来参加聚会不会太迟,最简单的方法是编辑admin.py文件
admin.site.site_header = 'your_header'
admin.site.site_title = 'site_title'
admin.site.index_title = 'index_title'
使用format\u html
允许呈现html,否则它将只是纯文本
在主urls.py
文件中添加以下内容(urls.py
位于settings.py
存在的目录中):
还请注意,您可以在//templates/admin/base\u site.html
中{%extends“admin/base.html”%}
,只需重新定义所需的块,即{%block branding%}…{%endblock%}
。即使很旧,我想补充一点,您必须将您定义此模板的应用程序放在“django.contrib.admin”之前,在django 1.6 python 3.3中的已安装应用程序中,即使您没有添加模板加载程序
设置,上述操作仍然有效。只需模板_DIR
就足够了,它似乎在1.7中已经过时。请参阅Reto Aebersold的答案。在url.py中试试这个