Djangoでデフォルトで使える管理画面
Djangoで開発をする方にはおなじみですが、
このフレームワークにはデフォルトで管理画面が使えるようになっています。
インストール直後にすぐ使えるもので、複雑な処理がなく、DBの構造もそれほど複雑ではない簡易的なサイトであれば十分機能要件を満たせると思います。
ただ、少し複雑になってしまうと、管理画面の構造を覚えることに多少時間がかかってしまったり、
やりたいことができないということも生じうるので、その場合は自分で管理画面を0から自作した方が良いと思います。
管理画面は
はじめての Django アプリ作成、その2 | Django documentation | Django
のページのチュートリアルを参考に進めると、
以下の画面のような画面に辿り着くため、ここでユーザ名とパスワードを入力すれば管理画面にログインできます。
※ユーザ名とパスワードの初期値については、チュートリアルを参考にしてくださいね。
管理画面の中身
ログインしてみると、
こんな感じでGroupsとかUsersの編集可能なコンテンツが表示されます。
ところが、参考にした某サイト情報では、Authの下にSitesとかいう欄も一緒に表示されるらしい。
僕が対応した時はなぜか表示されずに色々試行錯誤。
正直用途はわからないんですけどねw
表示されなかった原因と設定
原因は簡単でした。
settings.pyのINSTALLED_APPSにsitesが入っていないことが原因でした。
デフォルトでは、INSTALLED_APPSの設定値は以下のようになっています。
Djangoの勉強を始めた頃とかは、全ての内容がよくわからないと思うので、なんのこっちゃって感じですよね。
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls', )
今回の対応では、上記を以下のように書き変えました。
変更点としては、「'django.contrib.sites',」という箇所を追記したのですがわかりますか?
下から2行目です。
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', # ここを追記しています。 'polls', )
その後は、再度「python manage.py syncdb」を実行してデータベースと同期をとります。
python manage.py syncdb
ちなみにこの時「django_site」というテーブルが新たに作成されているはずなので、一度確認をしてください。
この状況で、サーバーを再起動させてみると...
Authの下にSitesが作成されています!
正直Sitesにどんなものがあるのかよくわかっていないのですがw
一応チュートリアルにあるのですがまだよくわかりませんでしたw
“sites” フレームワーク — Django v1.0 documentation
チュートリアルにも載っていることですし、いざ使う時に迷ったら困るので、備忘のためにも記しておきました。
Djangoの管理画面についてもっと勉強してこのあたりを使いこなせるようになると、何かアプリを作る時に便利なんでしょうね。
デフォルトで管理画面が付属しているなんてほんと便利です。
ちょっとデザインが古い感じがして抵抗があるのですが、せっかくの恩恵は受けた方がいいですよね。
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2018/06/09
- メディア: 単行本
- この商品を含むブログを見る