Python
Django

django-grappelli を試してみる

「Djangoの管理インターフェースのためのすばらしい肌。」(Google翻訳)だそうです。
Django Packages の管理サイトインターフェース部門では1番使われてそうなので試してみることに。
基本的にドキュメント に従って設定するだけ。

使用した環境

Windows10
Python 3.5.4
Django 1.11.8
django-grappelli-2.10.1

インストール

> pip install django-grappelli

設定

settings.py

INSTALLED_APPS に grappelli を追加。

INSTALLED_APPS = [
    # TODO for grappelli
    'grappelli',
    'django.contrib.admin',
    ...
]

TEMPLATES に コンテキストプロセッサを追加。デフォルトで入ってますが、なければ追加。

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',
                ...
            ],
        },
    },
]

url.py

urlパターンを追加。このurlは関連検索やオートコンプリートに使用するらしい。adminサイトのurlは変わりません。

urlpatterns = [
    # TODO for grappelli
    url(r'^grappelli/', include('grappelli.urls')),
    url(r'^admin/', admin.site.urls),
]

collectstaticコマンド実行

今回はローカル環境だけなのでこれは不要。

管理サイトを起動

デフォルトの管理サイト(Home)

比較のため django-grappelli 適用前のデフォルトの管理サイト

通常_admin_.png

django-grappelli 適用後の管理サイト(Home)

ちょっと古い感じのデザイン…

grappelli_admin_.png

Dashbordを設定

settings.py

INSTALLED_APPS に grappelli.dashboard を追加。以下の順番にする必要があるらしい。

INSTALLED_APPS = [
    'django.contrib.contenttypes',
    # TODO: for grappelli
    'grappelli.dashboard',
    'grappelli',
    'django.contrib.admin',
    ...
]

dashboard.py を作成

コマンドプロンプトでプロジェクトディレクトリに移動し、以下のコマンドを実行して dashboard.py を作成。

> python manage.py customdashboard

再度 settings.py

上で作成した dashboard.py に CustomIndexDashboard というクラスがあるので、GRAPPELLI_INDEX_DASHBOARD にこのクラス名を設定する。

# TODO: for grappelli
GRAPPELLI_INDEX_DASHBOARD = 'dashboard.CustomIndexDashboard'

管理サイトを起動 (Dashboard適用後)

カスタマイズ未のDashboardだと以下の感じになる。上で作成した dashboard.py を変更してカスタマイズしていくみたい。dashboardカスタマイズのドキュメント

grappelli_dashboard.png

感想

すぐに適用できる。
Dashboardをカスタマイズして本領発揮なのかもしれないけれど、デザインが古めかしいのでカスタマイズしちゃおう!という気にならなかった。
他のを試してみよう。