2012-01-18 37 views
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類並指向上面貼的代碼之類的一個進口。

我試圖替換populate_games()具有不同的選擇,以檢查是否這是產生誤差。 下面是我在遊戲類中創建一個類的方法調用Game.populate_games()我取代populate_games名單()與

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

....

注意到似乎解決錯誤。

+1

你將不得不向我們展示'populate_games()'的代碼。 – Joe 2012-01-18 11:35:08

+0

@Joe加入上述用於populate_games()的代碼。 – Abhaya 2012-01-18 11:41:22

+0

什麼是「cloudwork.work.models」?它是外部的嗎?它是否有需要安裝的依賴項? – Joe 2012-01-18 11:44:21

回答

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 2012-01-18 12:08:58