2012-01-18 30 views
1

私のモデル(人物)の1つに次のフィールドがあります。選択フィールドの入力エラー

field1 = models.CharField(verbose_name="Field",choices=populate_games(), max_length=50) 

populate_gamesがutilsモジュールに追加されました。そのコードは次のとおりです

def populate_games(): 
    from cloudwork.work.models import Game 
    return Game.objects.values_list('name', 'name').distinct('name') 

これは生産と開発の両方で優れています。しかし、プロダクションではPersonクラスをインポートしているクラスの1つにPersonをインポートできず、上に掲示したコードを指しているというエラーがスローされます。

populate_games()を異なるオプションで置き換えて、エラーが発生していないかどうかを確認しました。 はここ

注目にエラーを解決するようだ....私は()Game.populate_gamesを呼び出すためにゲームのクラスのクラスメソッドを作成し

Game.objects.values_list('name', 'name').distinct('name') 

と私はpopulate_gamesを置き換えリスト()です。

+1

あなたは 'populate_games()'のコードを表示する必要があります。 – Joe

+0

@Joeは上記のpopulate_games()のコードを追加しました。 – Abhaya

+0

'cloudwork.work.models'とは何ですか?それは外部ですか?依存関係はインストールする必要がありますか? – Joe

答えて

1

ここには円形の輸入品があります。試してみてください

from django.db.models import get_model 

def populate_games(): 
    Game = get_model('work', 'Game') # I assume 'work' is the name of the app 
    return Game.objects.values_list('name', 'name').distinct('name') 
+0

私は、私たちが循環輸入できなかったことを認識していませんでした。私は電子メール通知を受け取るだけです。 – Abhaya

関連する問題