Перейти к основному содержимому

Navbar

Добавлено в 1.0.1

Navbar собирает AdminNavbarService. Всегда есть встроенный пункт темы, затем свои кнопки, dropdown из групп страниц и user menu.

Встроенный пункт темы

django_chassis.navbar.theme поставляет переключатель темы. Его не нужно регистрировать самому — сервис navbar вставляет его сам.

Свои кнопки и пункты user menu

Объявите классы на сайте:

from django_chassis.components import AdminNavbarButton, AdminUserMenuItem


class ReportsButton(AdminNavbarButton):
slug = 'reports'
label = 'Reports'
icon_class = 'fa-solid fa-chart-line'

def get_url(self, request):
return '/admin/pages/reports/'


class CustomAdminSite(ChassisAdminSiteMixin, AdminSite):
navbar_button_classes = (ReportsButton,)
user_menu_item_classes = ()

Модуль пользователей добавляет пункты Профиль и Изменить пароль, пока не задано include_users_module = False. См. Пользователи и доступ.

Slug должны быть уникальными. Сервис проверяет это до рендера.

Доступные контракты:

  • AdminNavbarButton — одна ссылка в navbar
  • AdminNavbarDropdown — родитель с дочерними пунктами
  • AdminUserMenuItem — пункт в меню авторизованного пользователя
  • AdminNavbarItem — общая база

Группы страниц как dropdown

AdminPage с navbar_group = AdminPageGroupOption(...) попадает в dropdown navbar. Personal-страницы в группу войти не могут.

from django_chassis.options import AdminPageGroupOption

reports = AdminPageGroupOption(slug='reports', label='Reports', icon_class='fa-solid fa-chart-line', order=10)
ПараметрТипПо умолчанию
slugstrобязательный
labelлокализованная строкаобязательный
icon_classкласс Font Awesomeобязательный
orderint0

Тот же тип option используется как dashboard_group для секций действий dashboard. См. Свои страницы.

Бренд

Изменено в 1.0.1

По умолчанию сайт использует иконку из документации (admin/chassis/icon.svg) как логотип входа и favicon. Переопределите:

  • chassis_brand_name
  • chassis_brand_logo_static_path

Или переопределите get_chassis_brand() / get_chassis_brand_badge(), чтобы вернуть BrandDTO / BrandBadgeDTO.

См. также