埼玉在住エンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことについて残していきたいと思っています。https://ikujip.jpの開発も行っているため、そこで使った知識なども載せられればと思います。

Djangoのadmin画面でSitesが表示されない

Djangoで開発をする方にはおなじみですが、
このフレームワークにはデフォルトで管理画面がついています。
インストール直後に使えるもので、以下の画面よりユーザ名とパスワードを入力すれば管理画面にログインできます。

f:id:tomotomo1129:20180512110730j:plain

ログインしてみると、

f:id:tomotomo1129:20180512110746j:plain

こんな感じでGroupsとかUsersの編集可能なコンテンツが表示されるのですが、あれ?
参考にしたサイト情報ではSitesとかいうものも表示されるらしい。
なんで表示されないんだろう...と色々試行錯誤。

原因は簡単で、settings.pyのINSTALLED_APPSにsitesが入っていないことでした。
以下のような設定値を

INSTALLED_APPS = (
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'polls',
 )

以下のように変えました。(「'django.contrib.sites',」を入れた)

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」というテーブルができてました。

サーバーを再起動させてみると、
Sitesが作成されてました。

正直Sitesにどんなものがあるのかよくわかっていないのですがw
いざ使う時に迷ったら困るので、備忘のためにも記しておきました。

f:id:tomotomo1129:20180512111139j:plain