Djangoを1.7から1.8にアップグレードした後に./manage.py runserver
を実行すると、次の警告が2回表示されます。Djangoを1.8にアップグレードすると関連性のないサイトが生成される - フレームワークの警告
.../django/contrib/sites/models.py:78: RemovedInDjango19Warning: Model class django.contrib.sites.models.Site doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9.
プロジェクトはまだ細かい動作しますが、私は警告を取り除きたいです。私は自分のプロジェクトでSitesフレームワークを使用していませんが、プロジェクトのsettings.py
のINSTALLED_APPS
リストに'django.contrib.sites'
を追加すると警告が消えました。それは警告の世話をした、私は幸せだった。
しかし、プロジェクトはログインプロンプトでデータベースのサイトを要求し始めます。さて、すべてのことは、サイトフレームワークがまったく欲しくないということです。しかし、今はデータベースエントリを管理しなければならないようで、インストール中やそれを考慮する必要があります。
django.contrib.auth
のログインコードはコードのそれに依存しているようです。しかし、Djangoのドキュメントでは、「site_name:site.nameのエイリアスです。サイトフレームワークがインストールされていない場合は、request.META ['SERVER_NAME']の値に設定されます。サイトでは、「サイト」フレームワークを参照してください。
したがって、django.contrib.auth
の著者はSitesフレームワークをオプションと見なしているようですが、私の状況から判断すると、そうではありません。
私の質問です。サイトフレームワークをまったく使用せずにDjangoの(おそらく貢献した)認証システムを使用して、その警告やSitesフレームワークに関連するすべてを取り除くことは可能ですか?
は 'Site'モデルがインポートされている場所追跡してみますので、今までにどんな問題がありました。 'auth'アプリケーションは' django.contrib.sites'が 'INSTALLED_APPS'になければそれをインポートすべきではありません。 'python -We manage.py runserver --traceback'を実行することによって、警告をエラーとして扱うためのpythonを取得することができます。その後、トレースバック内のインポートの位置を見ることができます。 – Alasdair