Программы
Панель администрирования Django - настройка вида (шаблона)

Панель администрирования Django - настройка вида (шаблона)

Простой способ подключить админку к сайту на Django, как сконфигурировать адмиин-панель, как изменить оформление администрационной панели Django фреймворка.

Админ-панель Django выглядит достаточно неплохо: не раздражает цвет, адаптивный дизайн, всё расположено довольно логично... Тем не менее, многие не хотят видеть надпись "Django", да и а целом разукрасить админку в "свои цвета".

Изображение Python 3.11. Что нового?

Настраиваем отображение заголовка, вкладки

Самое первое, что бросается в глаза - страница логина, на которой открытым текстом говорится о фреймфорке, первая страница после логина - также приветствие от Django, да и название вкладки намекает на нашего веб-друга. Чтобы поменять всё это "безобразие", нужно в admin.py сделать всего 3 настройки:

from django.contrib import admin

admin.site.site_header = "Лучшая админка"
admin.site.site_title = "Панель администрирования"
admin.site.index_title = "Добро пожаловать в админку"

Ну вот и готова наша BolgenCMS - можно уже продавать. Хотя и раньше можно было - лицензия позволяет. Но если всё же вам важно изменить эти надписи - теперь можете изменить.

Убираем "ненужные" разделы админки

При первом входе в админ-панель Django можно увидеть два раздела для редактирования пользователей и групп. Если они вам по какой-то причине мешают - их можно также просто убрать. Для этого "разрегистрируем" эти админки:

from django.contrib import admin
from django.contrib.auth.models import User, Group

admin.site.unregister(User)
admin.site.unregister(Group)

В предыдущей заметке о настройке Django админки мы напротив - регистрировали свою модель в админку. Здесь же мы удаляем "ненужное".

Есть время создавать админки, а есть время их удалять...

Добавляем логотип к нашей админке

Понятно, что у лучшей админки должен быть как минимум свой логотип. Чтобы добавить логотип, нам нужно для начала включить работу со статическими файлами. Поэтому создадим в корне проекта папку static и зарегистрируем её в settings.py:

STATIC_URL = '/static/'  # Вот под этой строчкой
STATICFILES_DIRS = [f'{BASE_DIR}/static/']

Добавим в нашу папку для статики файл логотипа pony.png.

Теперь нам нужно переопределить шаблон для заголовка страницы - templates/admin/base_site.html. Для переопределения шаблонов я обычно завожу отдельную папку либо в главном приложении, либо в корне проекта. Чтобы это сделать, немного отредактируем переменную TEMPLATES в sessings.py:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [f'{BASE_DIR}/templates/'],  # Изменилась эта строчка
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

Сам файл шаблона заголовка админ-панели создаём в файле templates/admin/base_site.html:

{% extends "admin/base.html" %}

{% load static %}

{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}

{% block branding %}
<h1 id="site-name">
    <a href="{% url 'admin:index' %}">
        <img src="{% static 'pony.png' %}" height="40px" />
        {{ site_header }}
    </a>
</h1>
{% endblock %}

{% block nav-global %}{% endblock %}

Не знаю как у вас, а у меня теперь рядом с заголовком красуется поняшка.

Аналогичным методом можно переопределить и другие шаблоны. Оригиналы можно найти в пакете django, лежат они в директории django/contrib/admin/templates/admin. Либо же, если просто хотите поменять что-то в цветовой схеме - можете переопределить файл /static/admin/css/base.css.