私はdjangoアプリケーションを開発しています。私の問題に重要なモジュールは以下の通りです:コマンド実行時のdjango-circularインポートの問題
globals.py - >は、アプリケーション全体で使用される定数を含んでいます。 SITE_NAME
とSITE_DOMAIN
は2つあり、いくつかの文字列を埋めるために使用されます。ここで私はそれらを定義する方法である:
from django.contrib.sites.models import Site
...
SITE_DOMAIN = Site.objects.get_current().domain
SITE_NAME = Site.objects.get_current().name
models.py - >モデルは、このモジュール内に住んでいます。 globals.pyからいくつかの定数をインポートする
some_command.py - >グローバルからいくつかの定数もインポートするコマンド。
実行、コマンドglobals.pyからの輸入を一定にし、実行円形のインポート問題へ:内部globals.py、get_current()サイトからアプリと呼ばれ、サイトアプリは、models.pyをインポートします。globals.pyからのインポートがあります。
EDIT:
アプリケーションは、この円形輸入問題に遭遇することなく、完璧に動作します。シェルからglobals.pyをインポートしても問題はありません。コマンドでさえ、manage.pyを呼び出すことなくシェルから実行できます。
なぜ、manage.py some_commandが循環インポートによって失敗しますか?
ありがとうございます。
globals.pyの文字列定数の中には、このようなものがあります(例:WELCOME_STRING = 'Welcome to'%SITE_NAME – shanyu
Lol、welcome string constant)。また、あなたのビューのいくつかをglobals.pyに書いていますか? http://www.c2.com/cgi/wiki?GlobalVariablesAreBad – drozzy
@drozzy "globals.py"は、翻訳される文字列の単なるコンテナです。これは、 "settings.py"より "グローバル"ではありません。その名前で予告しないでください;) – shanyu