Как изменить текст «Администрация Django» в заголовке администратора Django?
Похоже, это не описано в документации «Настройка администратора».
python
django
django-admin
samurailawngnome
источник
источник
Ответы:
Обновление : если вы используете Django 1.7+, смотрите ответ ниже .
Оригинальный ответ от 2011 года: вам нужно создать собственный
base_site.html
шаблон администратора для этого. Самый простой способ - создать файл:Это должна быть копия оригинала
base_site.html
, за исключением вставки в ваш пользовательский заголовок:Чтобы это работало, вам нужно иметь правильные настройки для вашего проекта, а именно
settings.py
:/projectdir/templates/
добавлено вTEMPLATE_DIRS
.django.template.loaders.filesystem.Loader
добавлено вTEMPLATE_LOADERS
.Смотрите документы для получения дополнительной информации
settings.py
.источник
{% extends "admin/base.html" %}
в/<projectdir>/templates/admin/base_site.html
, и просто переопределить блок (ы) вам нужно, то есть{% block branding %}...{% endblock %}
.TEMPLATE_LOADER
настройки. Просто этогоTEMPLATE_DIR
достаточноНачиная с Django 1.7 вам не нужно переопределять шаблоны. Теперь вы можете реализовать site_header ,
site_title
иindex_title
атрибуты пользовательского AdminSite для того , чтобы легко изменить название страницы сайта админа и текст заголовка. Создайте подкласс AdminSite и подключите свой экземпляр к вашему URLconf:admin.py:
urls.py:
Обновление : как указано в oxfn, вы можете просто установить
site_header
в своемurls.py
илиadmin.py
напрямую без подклассовAdminSite
:источник
admin_site
которые вы создали. Нравитсяadmin_site.register(MyModel, ModelAdmin)
admin/base_site.html
шаблона, например, password_reset), то такжеextra_context
следует использовать в URL: например,url(r'^password_reset/$', auth_views.password_reset, name='admin_password_reset', kwargs={'extra_context': {'site_header': "My administration"}})
admin.site.site_header
конфигурация в котором вступит вapp*/admin.py
силу?Существует простой способ установить заголовок сайта администратора - назначить его текущему экземпляру администратора
urls.py
следующим образомИли можно реализовать магию построения заголовков в отдельном методе
Таким образом, в простых случаях нет необходимости создавать подклассы
AdminSite
источник
admin.site.site_title = 'My site admin'
.urls.py
:from django.contrib import admin
AdminSite
провел подкласс и потратил некоторое время, пытаясь заставить его работать,autodiscover()
но в конце концов подумал об этом решении самостоятельно. У меня на самом деле есть переопределениеadmin.py
, которое я считаю более чистым, поскольку оно сохраняется вместе со всей другой связанной с администрацией логикойВ
urls.py
вы можете переопределить 3 наиболее важные переменные:Ссылка: Django документация по этим атрибутам .
источник
Простое полное решение в Django 1.8.3, основанное на ответах на этот вопрос.
В
settings.py
добавлении:В
urls.py
добавлении:источник
admin.py
. Если у вас его еще нет, просто создайте его и не забудьте добавитьfrom django.contrib import admin
.ADMIN_SITE_HEADER
, единственное, что здесь имеет значение, это строкаurls.py
Самый простой способ сделать это, убедитесь, что у вас есть
а затем просто добавьте их в нижней части
url.py
основного приложенияисточник
Для Django 2.1.1 добавьте следующие строки в
urls.py
источник
Как видно из шаблонов , текст доставляется через структуру локализации (обратите внимание на использование
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.
источник
Просто зайдите в файл admin.py и добавьте эту строку в файл:
admin.site.site_header = "My Administration"
источник
admin.py:
источник
from django.utils.translation import ugettext_lazy
Не забудьте добавить эту строку.Прежде всего, вы должны добавить templates / admin / base_site.html в ваш проект. Этот файл можно безопасно перезаписать, так как это файл, который разработчики Django предназначали для точной настройки вашего сайта администратора. Вот пример того, что положить в файл:
Это обычная практика. Но после этого я заметил, что меня все еще раздражает «Администрирование сайта» на главной странице администратора. И эта строка была не внутри какого-либо из шаблонов, а скорее установлена в представлении администратора. К счастью, это довольно легко изменить. Предполагая, что ваш язык установлен на английский, выполните следующие команды из каталога вашего проекта:
Теперь откройте файл locale / en / LC_MESSAGES / django.po и добавьте две строки после информации заголовка (последние две строки этого примера)
После этого не забудьте выполнить следующую команду и перезагрузить сервер вашего проекта:
источник: http://overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/
источник
Из Django 2.0 вы можете просто добавить одну строку в
url.py
и изменить имя.Для старых версий Django. (<1.11 и ранее) вам нужно отредактировать
admin/base_site.html
Изменить эту строку
в
Вы можете проверить свою
django
версию поисточник
Вам не нужно менять какой-либо шаблон для этой работы, вам просто нужно обновить
settings.py
свой проект. Перейти к нижней частиsettings.py
и определить это.Таким образом, вы сможете изменить заголовок администратора Django. Более того, вы можете узнать больше о настройках и настройках Django Admin по следующей ссылке.
Документация администратора Django
источник
Вы можете использовать,
AdminSite.site_header
чтобы изменить этот текст. Вот документыисточник
Есть два способа сделать это:
1] Переопределив
base_site.html
вdjango/contrib/admin/templates/admin/base_site.html
: Ниже приводится содержаниеbase_site.html
:Отредактируйте site_title & site_header в приведенном выше фрагменте кода. Этот метод работает, но он не рекомендуется, так как это статическое изменение.
2], добавив следующие строки в
urls.py
каталог проекта:Этот метод рекомендуется, так как мы можем изменить заголовок сайта, заголовок сайта и индексный заголовок без редактирования
base_site.html
.источник
Поскольку я использую только интерфейс администратора в своем приложении, я помещаю это в admin.py:
источник
Вы просто перезаписываете
admin/base_site.html
шаблон (копируете шаблонdjango.contrib.admin.templates
и вставляете в свой собственный каталог шаблонов администратора) и заменяетеbranding
блок.источник