2011-09-13 8 views
0

私は2つのアプリ "挑戦"と呼ばれる別の "stats"という名前のアプリを1つ持っています。両方のmodels.pyファイルの中に私はTeamという名前のクラスがあります。彼らは2つの完全な別々の目的を果たします。別のアプリからインポートするときDjangoで2つの異なるアプリケーション間で名前を共有するモデルをインポートする問題

from stats.models import Team 

チームモデルを統計からではなくチャレンジからインポートします。チャレンジからインポートする場合、

from challenge.models import Team 

チャレンジから正しくインポートされます。私はシェルを使用するとき、私は、次の取得:

>>> from stats.models import Team 
>>> Team 
<class 'challenge.models.Team'> 

は、私はそれはsettings.py内のINSTALLED_APPSにあるアプリケーションの順序内であったかもしれないと思ったので、私は無駄にそれらを再配置しました。

私はキャッチしていないいくつかの奇妙な循環依存関係がありますか、これはDjango内のバグですか?どうしたの?

+2

どのように?これは非常に悪いことです。あなたが宝くじに勝った後にこれを維持しなければならない人々は、あなたをたくさん憎んで、約1時間以内にそのクラスの名前を変更します。なぜそれらをすべて保存しないのですか? –

+1

'stats/models.py'に' type(Team) 'を表示してデバッグします。それがすでに挑戦しているなら、どこかでそれをインポートしたかもしれません。あるいは、stats.models.Teamを設定している他のモジュールがあります。コードなしで伝えるのは難しい。 – rumpel

+0

良いアイデアであるかどうかにかかわらず、元の問題を説明していません。私はタイプ(チーム)を試しましたが、出力するのは paubins

答えて

1

方法について:第三のアイデアについて

from challenge.models import Team as ChallengeTeam 
from stats.models import Team as StatsTeam 

ChallengeTeam 
>>> <class 'challenge.models.Team'> 

StatsTeam 
>>> <class 'stats.models.Team'> 
関連する問題