Django — улучшаем админку

Django — великолепный фреймворк для быстрой разработки сложных веб-приложений. Среди прочего, django включает админскую часть сайта, автоматически добавляющая инструменты для работы с вашими моделями данных. Админка Django также может быть значительно изменена, если это нужно разработчику, чтобы реализовать что-то нестандартное.

Однако при всех плюсах есть и один минус. Внешний вид админки выглядит старовато на фоне современных плюшек от дизайна, которые со всех сторон сыпятся на современных пользователей. Что делать? Улучшить админку Django! 

django-admin2

Попробуем в качестве замены стандартной админки Django использовать django-admin2.

Django-admin2 предполагает полную замену и независимость от стандартной админки Django. Для установки и подключения новой админки к нашему проекту выполняем:

Установка django-admin2

Сперва установим приложение django-admin2:

pip install django-admin2

Добавление djadmin2 и rest_framework в settings

INSTALLED_APPS = (
   ...
   'djadmin2',
   'djadmin2.themes.djadmin2theme_default', # for the default theme
   'rest_framework', # for the browsable API templates
   'floppyforms', # For HTML5 form fields
   'crispy_forms', # Required for the default theme's layout
   ...
)

Добавление URLs djadmin2 в URLconf

# urls.py
from django.conf.urls import patterns, include

import djadmin2

djadmin2.default.autodiscover()

urlpatterns = patterns(
   ...
   url(r'^admin2/', include(djadmin2.default.urls)),
)

Тест django-admin2

Сразу после установки приложения можно залогинится в новую админку, добавив к URL сайта admins2/. Шаблон по-умолчанию для django-admin2 построен на базе Bootstrap и выглядит довольно неплохо.

django-admin2

К сожалению, django-admin2 не отобразила установленных приложений. Сравните со скриншотом родной админки Django:

django-admin

Django-admin-tools

Django-admin-tools — приложение Django, модифицирующее работу стандартной админки.

Среди прочего, django-admin-tools предлагает функциональный и гибкий в настройке dashboard и настраиваемое меню. Посмотрим.

Установка  django-admin-tools

pip install django-admin-tools

 

First make sure you have the django.core.context_processors.request template context processor in your TEMPLATE_CONTEXT_PROCESSORS.

Then, add admin_tools and its modules to the INSTALLED_APPS like this:

INSTALLED_APPS = (
‘admin_tools’,
‘admin_tools.theming’,
‘admin_tools.menu’,
‘admin_tools.dashboard’,
‘django.contrib.auth’,
‘django.contrib.sites’,
‘django.contrib.admin’
# …other installed applications…
)

Important

it is very important that you put the admin_tools modules before the django.contrib.admin module, because django-admin-tools overrides the default Django admin templates, and this will not work otherwise.

Then, just add django-admin-tools to your urls.py file:

urlpatterns = patterns(»,
url(r’^admin_tools/’, include(‘admin_tools.urls’)),
#…other url patterns…
)

Finally simply run:

python manage.py syncdb

If you have South installed, make sure you run the following commands:

python manage.py migrate admin_tools.dashboard
python manage.py migrate admin_tools.menu

django-admin-tools

Django-Suit

http://django-suit.readthedocs.org/en/develop/#installation

You can get Django Suit by using pip or easy_install:

pip install django-suit
or
easy_install django-suit

You will need to add the ‘suit’ application to the INSTALLED_APPS setting of your Django project settings.py file.:

INSTALLED_APPS = ( … ‘suit’, ‘django.contrib.admin’, ) Warning ‘suit’ must be added before ‘django.contrib.admin’

You also need to add ‘django.core.context_processors.request’ to TEMPLATE_CONTEXT_PROCESSORS setting in your Django project settings.py file.:

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP

TEMPLATE_CONTEXT_PROCESSORS = TCP + ( ‘django.core.context_processors.request’, )

django-suit2

Grappelli

grappelli

Using pip:

pip install django-grappelli

Go to https://github.com/sehmaschine/django-grappelli if you need to download a package or clone the repo.

Open settings.py and add grappelli to your INSTALLED_APPS (before django.contrib.admin):

INSTALLED_APPS = (
‘grappelli’,
‘django.contrib.admin’,
)

Add URL-patterns:

urlpatterns = patterns(»,
(r’^grappelli/’, include(‘grappelli.urls’)),
)

Make sure AppDirectoriesFinder is first with your STATICFILES_FINDERS:

STATICFILES_FINDERS = (
‘django.contrib.staticfiles.finders.AppDirectoriesFinder’,
‘django.contrib.staticfiles.finders.FileSystemFinder’,
)

Collect the media files:

python manage.py collectstatic

Вывод

Django_suit симпатичнее, чем Grappelli. Если нужно только украшение, то можно поставить его.

django-suit

Если нужно что-то более «свое», то можно начать с django-admin-tools, либо самостоятельно менять шаблоны и работу админки Django.

Django — улучшаем админку: 2 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *