Pull to refresh

Кастомизация Django Admin с django-unfold

Level of difficultyEasy
Reading time3 min
Views1.8K

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

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

Конечный результат django-admin, после прочтения статьи. Минимум кода.
Конечный результат django-admin, после прочтения статьи. Минимум кода.


ВАЖНО! Инструкция применима, если у вас уже есть какой-либо проект на /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.pyLANGUAGE_CODE="ru" и он перевел всю админ-панель на выбранный мною язык в настройках самого /Django/.

Библиотека довольно гибкая, лично для меня — это фаворит, если будет стоять выбор между комфортом и качеством. В пару кликов, можно изменить цветовую палитру админ-панил.

UNFOLD = {
    "COLORS": {
        "primary": {
            "50": "#f0fdf4",
            "100": "#dcfce7",
            # ... другие оттенки ...
        },
    },
}

Поверьте, на этом все не заканчивается. У нее куда больше возможностей, чем вы думаете. Разбирать это можно довольно долго, но мне кажется, то что лишний раз потыкать самому будет куда интереснее, чем читать гору текста о довольно очевидных системах.

Поэтому, давайте закончим перечислением плюсов данной билбиотеки.

  • Современный UI

    • Минималистичный, но современный дизайн

    • Адаптивность (корректно отображается на мобильных устройствах).

  • Темная/светлая тема

    • Автоматическое переключение.

    • Ручной выбор темы.

  • Гибкая настройка

    • Изменение цветов, логотипа, заголовков.

    • Кастомизация сайдбара, верхнего меню, форм.

  • Дополнительные компоненты

    • Улучшенные фильтры (unfold.contrib.filters).

    • Красивые формы (unfold.contrib.forms).

    • Поддержка Tabler Icons и Material Icons.

  • Простота установки

    • Работает /из коробки/ без переписывания существующего кода.

Искренне надеюсь, то что помог людям, которые искали решение данной проблемы. Всем хорошего дня!

Tags:
Hubs:
+7
Comments6

Articles