見出し画像

【Django】all-authで承認機能実装時のエラー解決:“no such table: django_site”

Djangoをこちらのサイトを参考に承認機能をall-authで実装していたところ
“no such table: django_site”のエラーに悩まされたので解決法を書き残します。

エラーの状況

all-authでの実装が完了し、試しにhttp://127.0.0.1:8000/account/login/にアクセスしたところ“no such table: django_site”が出て本来表示されるはずの
ログイン的な画面が表示されない。

エラーの内容的には、django_siteというテーブルが存在しないということだから、存在の有無を確認→確かに存在しない。
このdjango_siteというテーブルがあれば解決??

解決法

結論) 以下の2つのコマンドを実行で解決

$ python3 manage.py migrate sites
$ python3 manage.py migrate

まず、$ python3 manage.py migrate sitesを実行。
すると、ターミナルでこのように出力される。

続いて、$ python3 manage.py migrateを実行。
すると、ターミナルでこのように出力される。

db.sqlite3の中身を覗いてみると、django_siteテーブルが作成されていることが確認できた。

※ちなみにテーブルの構造はこんな感じだが、まだDjango触り出したくらいの初心者なので何に使うのかは分からん。笑

では改めてサーバー起動して、再びhttp://127.0.0.1:8000/account/login/にアクセスしてみる。

ちゃんとログイン画面が表示された!

同じところで詰んだ人がいらしたら、参考になれば幸いです。

この記事が気に入ったらサポートをしてみませんか?