Django Admin-изменить заголовок "администрирование Django" текст
Как изменить текст "администрирование Django" в заголовке администратора django?
Он, похоже, не охвачен документацией "настройка администратора".
14 ответов
обновление: если вы используете Django 1.7+, см. ответ ниже.
оригинальный ответ с 2011 года: Вам нужно создать свой собственный admin base_site.HTML шаблон для этого. Самый простой способ-создать файл:
/<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
см.http://docs.djangoproject.com/en/dev/ref/settings/ для получения дополнительной информации о settings.py
начиная с Django 1.7 вам не нужно переопределять шаблоны. Теперь вы можете реализовать site_header, site_title
и index_title
атрибуты пользовательского AdminSite для того, чтобы легко изменить заголовок страницы сайта администратора и текст заголовка. Создайте подкласс AdminSite и подключите экземпляр к вашему Url-конфигурации:
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, вы можете просто установить site_header
в своем urls.py
или admin.py
напрямую, без создания подклассов AdminSite
:
admin.site.site_header = 'My administration'
существует простой способ установить заголовок сайта администратора-назначить его текущему экземпляру администратора в urls.py
такой
admin.site.site_header = 'My admin'
или можно реализовать некоторую магию построения заголовка в отдельном методе
admin.site.site_header = get_admin_header()
таким образом, в простых случаях нет необходимости подкласс AdminSite
простое полное решение в Django 1.8.3 на основе ответов на этот вопрос.
на settings.py
добавить:
ADMIN_SITE_HEADER = "My shiny new administration"
на urls.py
добавить:
from django.conf import settings
admin.site.site_header = settings.ADMIN_SITE_HEADER
In urls.py вы можете переопределить 3 наиболее важные переменные:
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"
самый простой способ сделать это убедитесь, что у вас есть
from django.contrib import admin
а затем просто добавьте их в нижней части url.py
из вас основное приложение
admin.site.site_title = "Your App Title"
admin.site.site_header = "Your App Admin"
как вы можете видеть в разделе шаблоны текст в рамках локализации (обратите внимание на использование trans
тег шаблона). Вы можете внести изменения в файлы перевода, чтобы переопределить текст без создания собственной копии шаблонов.
-
mkdir locale
./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 compilemessages
посмотреть https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files
прежде всего, вы хотите добавить шаблоны / admin / base_site.html для вашего проекта. Этот файл можно безопасно перезаписать, так как это файл, который разработчики django предназначили для точной настройки вашего сайта администратора. Вот пример того, что нужно поместить в файл:
{% 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 %}
Это обычная практика. Но я заметил после этого, что я все еще остался с раздражающим "администрированием сайта" на главной странице индекса администратора. И эта струна не была внутри ни одной из них. шаблон, но скорее установить внутри представления администратора. К счастью, это довольно легко изменить. Предполагая, что ваш язык установлен на английский, выполните следующие команды из каталога проекта:
$ 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/
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')
вам не нужно менять какой-либо шаблон для этой работы вам просто нужно обновить settings.py
вашего проекта. Перейти к нижней части settings.py
и определить это.
admin.site.site_header = 'My Site Admin'
таким образом, Вы сможете изменить заголовок администратора Django. Кроме того, вы можете узнать больше о настройке и настройках Django Admin по следующей ссылке.
можно использовать AdminSite.site_header
изменить этот текст. Вот это docs
поскольку я использую только интерфейс администратора в своем приложении, я помещаю это в admin.py :
admin.site.site_header = 'My administration'
вы просто переопределить admin/base_site.html
шаблон (скопируйте шаблон django.contrib.admin.templates
и поместите в свой собственный шаблон администратора dir) и замените branding
блок.
для 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'