Python
Django
admin
Friday-IO

Djangoの管理画面を比較してみた

More than 1 year has passed since last update.

Friday I/O でーす!
株式会社ワムウでは、毎週金曜日は 興味がある事柄に取り組み、その成果を何らかの形でアウトプットする日 としております。

はじめに

今回は数あるDjangoのadmin interface系ライブラリを見比べてみましたー。
こちら を見ると大量にライブラリがあるんですが、その中でも有名どころを4つピックアップして比較してみましたよ。

ソースコードは以下のリポジトリにあります。
管理画面毎にブランチ切っているので、切り替えて確認してみてくださいねー。

https://github.com/odoku/django-admins

Django

デフォルトの管理画面で御座います。
Django 1.9でデザインの刷新をしたので割とモダーンな作りにはなってます。
Admin拡張ライブラリはデフォルトの管理画面を基準に作られてるので、実は一番カスタマイズ性があったりします。
でもやぱっりちょっと色々と面倒なのは否めず。。

Login

01_login.png

Dashboard

02_dashboard.png

List

03_list.png

Edit

04_edit.png

django-jet

Github: https://github.com/geex-arts/django-jet
Document: http://jet.readthedocs.io/en/latest/
Demo: http://demo.jet.geex-arts.com/admin/login/?next=/admin/

今回最有力の管理画面で御座います!
見た目もわりと綺麗ですし、ダッシュボードもカスタマイズ出来るし、基本的にはコレ使っておけばおk感ある。

Login

01_login.png

Dashboard

ウィジェットはドラッグで移動出来たりします。
クライアントのおじさん達にはかっこいいダッシュボード見せておけば大体喜んでくれるはず。

ちなみに、左メニュー下の BOOKMARKS には、任意のURLをブックマークとして保存出来ますよ。
よく編集するページとか、GoogleスプレッドシートのURLとか保存しておくと良いかも。
追加のページを管理画面に作って なんて要望も、とりあえずこれがあれば何とかごまかせそう。

02_dashboard.png

List

一覧もすっきりキレイ。

03_list.png

Edit

要素のマージンとかが微妙だけど、まあまあキレイっちゃーキレイっす。

ManyToManyField の項目が自動的に インクリメンタルサーチ のwidgetになってるのがステキ。

04_edit.png

django-jet はインラインの要素を勝手にタブにしてくれる様です!

05_edit_inline.png

django-suit

Github: https://github.com/darklow/django-suit
Document: http://django-suit.readthedocs.io/en/develop/
Demo: http://djangosuit.com/admin/

こちらも中々美しげな見た目で御座います!
が!商用利用の場合は有料なのでご注意下さいませ。
しかし、それに見合うだけのカスタマイズ性が御座いますよ。

Login

01_login.png

Dashboard

ダッシュボードのカスタマイズは出来ないご様子。。

02_dashboard.png

List

今回は実装してませんが、一覧ページで要素の並び替えが出来る機能を持っています。
おじさん達並び替えるの大好きなので、これは中々ポイント高いと思います!

03_list.png

Edit

これも今回は実装してないですが、任意の項目をタブページに切り出す機能があります!

今気づきましたが、これ 保存 とかのボタンが表示されて無いですね。。
確認したら Wysiwygエディタ の横幅が固定値になっているのが原因だった様です。
普通に使う分にはちゃんと表示されるのでご安心ください!

04_edit.png

django-grappelli

Github: https://github.com/sehmaschine/django-grappelli
Document: https://django-grappelli.readthedocs.io/en/latest/

見た目がちょっと古めかしい気もしますが、普通にキレイなUIの管理画面です。
grappelliも結構しっかりとカスタマイズ出来るので、自分でシコシコいじりたい人は良いかもしれません。
django-suit と違い無償で利用が出来ますよ!

Login

01_login.png

Dashboard

grappelliもダッシュボードのカスタマイズ機能を持っているのですが、
こちらはウィジェットを追加する様な感じではなく、ゴリゴリ実装していくタイプの様ですね。

02_dashboard.png

List

一覧のカスタマイズはあんまり出来なそう。。

03_list.png

Edit

インライン要素の並び替え
オートコンプリートなど、
中々痒いところに手が届く感じになっています!!

04_edit.png

django-material

Github: https://github.com/viewflow/django-material
Document: http://docs.viewflow.io/material_admin.html
Demo: http://demo.viewflow.io/admin/login/?next=/admin/

Materialzieを利用して作成された管理画面の様です!
正直、拡張性がないどころか機能制限されるんで微妙な所ではありますが、
Djangoの管理画面らしからぬ見た目になるので割と面白いです。

Login

主張が強いw

01_login.png

Dashboard

なんかアイコンつけられる様ですよ!
これはちょっと良いなと思いました。

02_dashboard.png

List

Google感出てる。

03_list.png

Edit

残念ながら Wysiwygエディタ が動いておりません!!!!
なんか調整すればイケるのかも知れないですが、力尽きました。。
StackedInline3カラム で並んでんのが良さげですが、横に長い要素の場合どうなるんだろうかとちょっと心配です。

04_edit.png

まとめ

いかがでしたか!
記事書いててスクリーンショットあんま意味ないなと思いましたが、雰囲気が伝われば良いかなと思いました。
個人的には、さっくり作るなら django-jet で、がっつりカスタマイズするなら django-grappelli かなという感じです。
ただ、色々と便利な 管理画面様ライブラリ がDjangoにはあるのですが、それらがちゃんと動くかどうかも重要なので、
結局のところ無難なのは デフォルトの管理画面 なのかも知れません。

なにはともあれ、Djangoの管理画面便利なので皆さんもイジイジして使いましょうー◎