utamaro’s blog

誰かの役に立つ情報を発信するブログ

Djangoの管理画面でBootStrap臭がひどいので消すことにした。

管理画面のBootStrap臭がひどいので消すことにしました。

アドミン機能はとても便利です。

DB内のデータをモデルを使ってCRUD操作できるので、編集が簡単です。

でも、個人的にはDB内のデータを操作する際は、専用のクライアントツールを使いたい派です。

postgresqlならPSequelを使うし、mysqlならworkbenchを使っています。

このどちらも管理画面を使用するよりも便利なので、あまり管理画面を使用しないのです。

あと、リリースしたあとに/adminを開いたときの残念感が嫌いです。

(urls.pyを修正すれば分からなくできるかもしれませんが、、、)

Bootstrap臭がすごいですよね、あのページ。あれはいらないです。

初期設定から管理画面に関する箇所を消す

settings.pyを編集します。

このページを見てみると、django.contrib.adminが管理画面に関するappというのがわかります。

https://docs.djangoproject.com/es/2.0/ref/contrib/admin/

また、管理画面は4つほど依存性を持っているようです。

この4つは管理画面で使用されているぐらいなので、アプリケーション開発に役立つ機能があると予想できます。

(実際使えます。)

というわけで、↓が修正するpythonファイルです。

INSTALLED_APPS = [
    # 'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
# from django.contrib import admin
from django.urls import path

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

migrateを実行します。

django.contrib.adminをコメントアウトしてmigrateを実行した結果です。

                       List of relations
 Schema |               Name                |   Type   | Owner
--------+-----------------------------------+----------+--------
 public | auth_group                        | table    | xxxxxx
 public | auth_group_id_seq                 | sequence | xxxxxx
 public | auth_group_permissions            | table    | xxxxxx
 public | auth_group_permissions_id_seq     | sequence | xxxxxx
 public | auth_permission                   | table    | xxxxxx
 public | auth_permission_id_seq            | sequence | xxxxxx
 public | auth_user                         | table    | xxxxxx
 public | auth_user_groups                  | table    | xxxxxx
 public | auth_user_groups_id_seq           | sequence | xxxxxx
 public | auth_user_id_seq                  | sequence | xxxxxx
 public | auth_user_user_permissions        | table    | xxxxxx
 public | auth_user_user_permissions_id_seq | sequence | xxxxxx
 public | django_content_type               | table    | xxxxxx
 public | django_content_type_id_seq        | sequence | xxxxxx
 public | django_migrations                 | table    | xxxxxx
 public | django_migrations_id_seq          | sequence | xxxxxx
 public | django_session                    | table    | xxxxxx

django.contrib.adminをコメントアウトしないでmigrateした結果です。

django_admin_logが消えているのが確認できます。

というかこれぐらいしか消えません。

                       List of relations
 Schema |               Name                |   Type   | Owner
--------+-----------------------------------+----------+--------
 public | auth_group                        | table    | xxxxxx
 public | auth_group_id_seq                 | sequence | xxxxxx
 public | auth_group_permissions            | table    | xxxxxx
 public | auth_group_permissions_id_seq     | sequence | xxxxxx
 public | auth_permission                   | table    | xxxxxx
 public | auth_permission_id_seq            | sequence | xxxxxx
 public | auth_user                         | table    | xxxxxx
 public | auth_user_groups                  | table    | xxxxxx
 public | auth_user_groups_id_seq           | sequence | xxxxxx
 public | auth_user_id_seq                  | sequence | xxxxxx
 public | auth_user_user_permissions        | table    | xxxxxx
 public | auth_user_user_permissions_id_seq | sequence | xxxxxx
 public | django_admin_log                  | table    | xxxxxx
 public | django_admin_log_id_seq           | sequence | xxxxxx
 public | django_content_type               | table    | xxxxxx
 public | django_content_type_id_seq        | sequence | xxxxxx
 public | django_migrations                 | table    | xxxxxx
 public | django_migrations_id_seq          | sequence | xxxxxx
 public | django_session                    | table    | xxxxxx

admin以外はすべて便利に使えるものなので、残すのが良いと思いました。