2015-12-17 4 views
5

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.pyINSTALLED_APPSリストに'django.contrib.sites'を追加すると警告が消えました。それは警告の世話をした、私は幸せだった。

しかし、プロジェクトはログインプロンプトでデータベースのサイトを要求し始めます。さて、すべてのことは、サイトフレームワークがまったく欲しくないということです。しかし、今はデータベースエントリを管理しなければならないようで、インストール中やそれを考慮する必要があります。

django.contrib.authのログインコードはコードのそれに依存しているようです。しかし、Djangoのドキュメントでは、「site_name:site.nameのエイリアスです。サイトフレームワークがインストールされていない場合は、request.META ['SERVER_NAME']の値に設定されます。サイトでは、「サイト」フレームワークを参照してください。

したがって、django.contrib.authの著者はSitesフレームワークをオプションと見なしているようですが、私の状況から判断すると、そうではありません。

私の質問です。サイトフレームワークをまったく使用せずにDjangoの(おそらく貢献した)認証システムを使用して、その警告やSitesフレームワークに関連するすべてを取り除くことは可能ですか?

+1

は 'Site'モデルがインポートされている場所追跡してみますので、今までにどんな問題がありました。 'auth'アプリケーションは' django.contrib.sites'が 'INSTALLED_APPS'になければそれをインポートすべきではありません。 'python -We manage.py runserver --traceback'を実行することによって、警告をエラーとして扱うためのpythonを取得することができます。その後、トレースバック内のインポートの位置を見ることができます。 – Alasdair

答えて

0

は、同じ問題を持っていたデフォルトのサイトのエントリ(ID = 1)を作成し、決して

+0

はい、Sitesフレームワークを構成できましたが、パフォーマンス、管理、構成の両方でオーバーヘッドになっています。これは私のプロジェクトには含まれません。 – Teekin

+0

サイトマップ、フラットページ、コンテンツタイプ、シンジケーションフィード、django認証(ビューとフォームのみ)はサイトフレームワークを使用しています。これらすべてのアプリケーションの使用をやめた場合、うまくいくはずです – Ramast

+0

「auth」の作者は質問に説明されているようにSitesフレームワークをオプションと見なしているようです。それが私を混乱させます。 – Teekin

関連する問題