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

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

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

Админ-панель 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.

Также может быть вам интересно:

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

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

Читать »

Пользователи и авторизация (логин) в Django, кастомизация пользователя

В Django есть множество встроенных возможностей, которые позволяют не реализовывать многие классы для стандартных операций. Среди них - авторизация. Django изначально предоставляет пользовательскую систему. Но её можно использовать лучше, чем по умолчанию.

Читать »
Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

Во время работы программы часто нужно сохранять некоторые важные записи о процессе выполнения команды. В Python есть довольно мощный модуль для работы с логами - давайте разберёмся с тем, как его использовать.

Фото Шаблон разработки ПО — Model View Controller (MVC)

Шаблон разработки ПО — Model View Controller (MVC)

MVC - один из самых распространённых архитектурных шаблонов разработки. Часто используется в различных фреймворках. В том числе и в Django.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если одни и те же данные нужны в разных местах, лучше сделать свой контекст-процессор.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

Если вашим сайтом должны активно пользоваться несколько человек, то полезно их различать, а значит - надо уметь создавать пользователей, либо предоставлять возможность регистрации Django пользователей.