Привет, Хабр. Изучая безграничные просторы интернета интернета, заметил явное отсутствие обучающих статей на тему кастомизации админ‑панели в /Django/, а уж поверьте. Её довольно старое для современных рамок стилизация — не приговор. И делается это буквально в пару кликов, без лишнего .css кода. На который как раз таки гайдов полно. Зачем засорять папку со статическими файлами лишним кодом, если можно сделать это в пару кликов.
Главное преимущества /Python/, заключается в том, то что пишется на других язык программирования в десять строк, можно написать на нашем любимом языке в две строчки. Поэтому варианты с самостоятельной кастомизацией, затрагивать не будем. Хотя данная библиотека, не ограничивает вас в написание своего кода для кастомизации. Всё написанное, лишь подключенная библиотека на /Python/ для /Django/.

ВАЖНО! Инструкция применима, если у вас уже есть какой-либо проект на /Django/ и вы хотите более современную админ-панель под свой проект. Есть аналоги, но при использование именно этой библиотеки, я получил самое большое удовольствие. К тому же ставится она в пару кликов мышки, и имеет довольно гибкую систему, которая позволяет модифицировать её под свои нужды.
Так же важно понимать, что Unfold не заменяет стандартную админку Django, а стилизует её, добавляя новые возможности через:
Кастомные шаблоны.
CSS/JS на основе Tailwind CSS.
JavaScript-логику для динамических элементов.
Перед началом работы с библиотекой, первым делом нам нужно установить ее. Для работы требуется лишь одна библиотека:
pip install django-unfold
После установки библиотеки. Мы можем наконец-то приступить к работе. Перейдем в директорию проекта, файл settings.py. Нам нужно сделать несколько поправок в файле настроек /Django/. Начнем с INSTALLED_APPS.
ОБЯЗАТЕЛЬНО СОХРАНЯЙТЕ ПОРЯДОК ПРИЛОЖЕНИЙ:
INSTALLED_APPS = [
"unfold", # Обязательно должно быть, перед django.contrib.admin
"django.contrib.admin",
# ... остальные приложения ...
]
Затем, нам нужно создать словарь, которая поможет вписать ваши настройки темы.
UNFOLD = {
# Последний пункт, необязателен. Будут доступны все темы для админ-панели
"SITE_TITLE": "Название вашего проекта", # Заголовок в браузере
"SITE_HEADER": "Админ-панель", # Заголовок в шапке
"SITE_ICON": "/static/logo.svg", # Путь к логотипу (SVG/PNG)
"THEME": "light", # "light", "dark" или "auto" (автоопределение)
}
После этих действий, вам будет доступна админ-панель уже в совсем новом и современном стиле. Опять же, вы можете даже не создавать кортеж, к ней в любом случае подгрузятся новые стили.

Так же она поддерживает любой язык, который поддерживает /Django/. В моем случае указано в settings.py — LANGUAGE_CODE="ru" и он перевел всю админ-панель на выбранный мною язык в настройках самого /Django/.
Библиотека довольно гибкая, лично для меня — это фаворит, если будет стоять выбор между комфортом и качеством. В пару кликов, можно изменить цветовую палитру админ-панил.
UNFOLD = {
"COLORS": {
"primary": {
"50": "#f0fdf4",
"100": "#dcfce7",
# ... другие оттенки ...
},
},
}
Поверьте, на этом все не заканчивается. У нее куда больше возможностей, чем вы думаете. Разбирать это можно довольно долго, но мне кажется, то что лишний раз потыкать самому будет куда интереснее, чем читать гору текста о довольно очевидных системах.
Поэтому, давайте закончим перечислением плюсов данной билбиотеки.
-
Современный UI
Минималистичный, но современный дизайн
Адаптивность (корректно отображается на мобильных устройствах).
-
Темная/светлая тема
Автоматическое переключение.
Ручной выбор темы.
-
Гибкая настройка
Изменение цветов, логотипа, заголовков.
Кастомизация сайдбара, верхнего меню, форм.
-
Дополнительные компоненты
Улучшенные фильтры (
unfold.contrib.filters
).Красивые формы (
unfold.contrib.forms
).Поддержка Tabler Icons и Material Icons.
-
Простота установки
Работает /из коробки/ без переписывания существующего кода.
Искренне надеюсь, то что помог людям, которые искали решение данной проблемы. Всем хорошего дня!
sWanderer
Что имеется в виду под "работает из коробки"?
Если то, что админка не падает при входе в нее после установки этого стилизатора - ОК.
В остальном, конфигурация по умолчанию не оптимальна и ее надо допиливать, причем ладно цветовая палитра, но есть, на мой взгляд и существенные моменты.
Только то, что нашел за 10 минут просмотра:
- в окне редактирования кнопки доп. действий в полях-списках связанных таблиц расположены по вертикали, выглядит убого и съедает много места;
- все поля стали УЖЕ, чем в стандартной админке;
- у поля типа JSONField пропала возможность менять его ширину, только высота;
- пропала возможность сворачивать неиспользуемые фильтры;
- сломались autocomplete_fields - поле поиска есть, но найденные результаты не отображаются;
- пропали кастомные (добавленные дополнительно) кнопки на странице редактирования экземпляра модели.
И дефолтная палитра неюзабельна. Кнопки не подсвечиваются при наведении. Кастомные кнопки на странице просмотра списка экземпляров модели сливаются с обычным текстом.
swcasimiro Автор
Привет, описанные тобой проблемы в большинстве случаях - вкусовщина, если тебе нравится пользоваться стандартной, то пользуйся. Если твоё начало аргументации начинается с того, что ты жалуешься на цветовую палитру, которую можно сменить в пару кликов на АБСОЛЮТНО любую. Как по мне это некорректно, ибо у каждого человека свои вкусы.
Половина твоих проблем, решаются созданием кастомного .css файла для этой админки. Я лишь дал вводную информацию о такой довольно локальной библиотеке, но изучив документацию. Ты поймешь, что 90% процентов проблем созданием каскадного файла решит. Я затронул далеко не все возможности, а лишь прошелся кратко по основным.
Мне кажется выбор между написанием своих каскадных файлов на дефолтную админку Django, затратит в разы больше времени, чем с этой библиотекой. И я уже рад, то что сэкономил кому-то время.
sWanderer
Отнюдь, на цветовую палитру я "жалуюсь" в последнем абзаце. Для меня более критично, что, например, сломались autocomplete_fields и это не вкусовщина.
И чем создание кастомного CSS для дефолтной админки отличается от такого же процесса для этого стилизатора?
swcasimiro Автор
Мне кажется это решит твою проблему - https://unfoldadmin.com/docs/filters/autocomplete/