поле выбора заполнить ошибку - PullRequest
1 голос
/ 18 января 2012

У меня есть следующее поле в одной из моих моделей (Персона).

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

populate_games был добавлен в модуль утилит.Вот код для этого

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

Он прекрасно работает как в производстве, так и в разработке.Но при работе он выдает ошибку, говорящую, что Person не может быть импортирован в один из классов, который импортирует класс Person, и указывает на код, опубликованный выше.

Я попытался заменить populate_games () другими вариантами, чтобы проверитьесли это генерировало ошибки.Вот список, который я заменил populate_games () на

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

Я создал метод класса в классе Game для вызова Game.populate_games () ....

, отметив, что, похоже, ошибка устранена,

1 Ответ

1 голос
/ 18 января 2012

С большой вероятностью у вас есть круговой импорт здесь.Попробуйте это

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')
...