Админ-панель Django выглядит достаточно неплохо: не раздражает цвет, адаптивный дизайн, всё расположено довольно логично... Тем не менее, многие не хотят видеть надпись "Django", да и а целом разукрасить админку в "свои цвета".
Настраиваем отображение заголовка, вкладки
Самое первое, что бросается в глаза - страница логина, на которой открытым текстом говорится о фреймфорке,
первая страница после логина - также приветствие от 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
.