Как оптимизировать панель администратора в Django?

Как вы уже наверное знаете, в Django существует встроенная админ-панель. Но мне не очень нравиться еë внешний вид, и мне надо добавить в неë дополнительную функцию. Собственно, вот и вопрос: как оптимизировать панель администратора в Django (то есть изменить еë внешний вид и добавить новые функции)?


Ответы (1 шт):

Автор решения: em0ji

Вот здесь можно подробней ознакомится со всеми админ-интерфейсами django. Я покажу установку и настройку на примере админ-интерфейса django-grapelli:

введите сюда описание изображения

Чтобы установить данную панель надо выполнить команду:

pip install django-grappelli

После установки открываем файл settings.py и добавляем grappelli в INSTALLED_APPS (перед django.contrib.admin):

INSTALLED_APPS = (
    'grappelli',
    'django.contrib.admin',
)

Далее добавляем grappelli в файл urls.py папки конфигурации :

from django.urls import path, include

urlpatterns = [
    path('grappelli/', include('grappelli.urls')), # grappelli URLS
    path('admin/', admin.site.urls), # admin site
]

Добавляем обработчик контекстного запроса:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',
                ...
            ],
        },
    },
]

Сохраняем и закрываем файлы settings.py и urls.py, пересобираем статику для медиафайлов:

python manage.py collectstatic

Запускаем сервер python manage.py runserver переходим в админку и тестим. Это не решает вопрос блокировок пользователей, но полностью отвечает на вопрос изменения внешнего вида административной панели django.

→ Ссылка