Настройка Django Admin: изменение названия сайта и заголовков

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для изменения заголовков в Django Admin необходимо создать подкласс AdminSite и установить атрибуты site_header, site_title и index_title. Пример такого кода, который вы можете применить в вашем проекте на Django, представлен ниже:

Python
Скопировать код
from django.contrib.admin import AdminSite

class CustomAdminSite(AdminSite):
    site_header = 'Название вашей компании в админ-панели'
    site_title = 'Заголовок сайта — яркий и запоминающийся'
    index_title = 'Приветствие в центре управления сайтом'

admin_site = CustomAdminSite()

# в файле urls.py используйте 'admin_site.urls' вместо 'admin.site.urls'

Настройте атрибуты site_header, site_title и index_title согласно своим предпочтениям, а затем внесите соответствующие изменения в файл urls.py.

Кинга Идем в IT: пошаговый план для смены профессии

Углубленная настройка

Персонализация шапки через шаблон

Для дополнительной настройки интерфейса Django Admin создайте файл base_site.html в директории templates/admin/:

HTML
Скопировать код
{% extends "admin/base_site.html" %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">Ваш уникальный бренд</a></h1>
{% endblock %}

Убедитесь, что папка templates/admin прописана в DIRS в разделе TEMPLATES файла settings.py:

Python
Скопировать код
TEMPLATES = [
    {
        # ...
        'DIRS': [os.path.join(BASE_DIR, 'templates/admin')],
        # ...
    },
]

Динамические заголовки

Если же вы предпочитаете использовать контекстно-зависимые заголовки, можно создать свою функцию для определения заголовка:

Python
Скопировать код
def get_fancy_header():
    # Здесь место для вашей логики выборки заголовка
    return "Управление порталом 'Динозаврик'."

# Заголовок можно применить в urls.py или admin.py
admin.site.site_header = get_fancy_header()

Полный контроль с помощью подкласса

Для тех, кто стремится к полноценной настройке админ-панели, следует создать собственный подкласс AdminSite:

Python
Скопировать код
from django.contrib.admin import AdminSite

class MyAdminSite(AdminSite):
    # Определите свои методы и свойства здесь

my_admin_site = MyAdminSite(name='myadmin')

В файле urls.py замените admin.site на my_admin_site.

Мультиязычная поддержка с использованием ugettext_lazy

Если ваша аудитория является многоязычной, настройте мультиязычную админ-панель с помощью ugettext_lazy:

Python
Скопировать код
from django.utils.translation import ugettext_lazy as _

class MultilingualAdminSite(AdminSite):
    site_header = _('Приветствие на Земле')
    site_title = _('Планетарный админ')
    index_title = _('Контрольный центр панели управления')

multilingual_admin_site = MultilingualAdminSite()

Визуализация

При настройке Django Admin представьте себя оформляющим свой профиль в социальной сети:

Markdown
Скопировать код
👔 Конфигурация профиля в Django Admin 👔

- Имя пользователя: "🏭 AdminX"
- Био: "👷 Набор инструментов разработчика"
- Статус: "📊 Управление данными"
Python
Скопировать код
admin.site.site_title = "🏭 AdminX"
admin.site.site_header = "👷 Набор инструментов разработчика"
admin.site.index_title = "📊 Управление данными"

Настраивайте интерфейс админ-панели так, чтобы он отражал ваше видение идеала.

Настройка с дизайнерским подходом: усиление брендирования

Чтобы ваша админ-панель Django выделялась, установите насыщенный брендинг с помощью site_header:

Python
Скопировать код
admin.site.site_header = 'Империя администраторов'

Это можно реализовать в файлах urls.py и admin.py.

Решение возможных проблем

Настройка Django Admin обычно проходит успешно, но иногда могут возникать трудности:

  • Ошибка поиска шаблона: Убедитесь, что папка templates/ прописана в TEMPLATES['DIRS'] файла settings.py.
  • Конфликт настроек: Проверьте код на предмет неумышленного перезаписывания подкласса AdminSite.
  • Проблемы с интернационализацией: Особенно тщательно проверьте правильность импорта и использования ugettext_lazy для обеспечения перевода.

Полезные материалы

  1. Документация Django по админ-панели — официальная документация Django по настройке админки.
  2. Книга рецептов Django Admin — сборник методов для кастомизации Django Admin.
  3. Замена шаблонов в Django Admin — описание способов замены шаблонов.
  4. Видеоурок по Django 1.8 — урок по настройке админки Django.
  5. DjangoCentral — подробные рекомендации по работе с Django Admin.
  6. Medium — инструкция по кастомизации интерфейса админки Django.