Django South: как я могу получить доступ к моделям в подпакетах при миграции

Поскольку наше приложение имеет множество моделей, мы размещаем их в models.Cheddar пакетов моделей, то есть модель models.Cheddar не будет в models.Cheddar , а вместо этого в models.cheese.Cheddar .

Похоже, что я не могу получить доступ к этим моделям в южной эмиграции данных, хотя я создал models/__init__.py в соответствии с этим ответом, содержащим строку from cheese import * .

В моем файле миграции данных строка for cheddar in orm.Cheddar.objects.all(): прежнему вызывает следующую ошибку:

 AttributeError: The model 'Cheddar' from the app 'core' is not available in this migration. (Did you use orm.ModelName, not orm['app.ModelName']?) 

Попытка использовать orm['core.models.cheese.Cheddar'] вместо этого вызывает эту ошибку:

 KeyError: "The model 'cheddar' from the app 'core' is not available in this migration." 

Кто-нибудь знает, как обойти эту проблему?

One Solution collect form web for “Django South: как я могу получить доступ к моделям в подпакетах при миграции”

Оказывается, проблема заключалась в том, что модель DataMigration не была указана в DataMigration models экземпляров DataMigration :

 class Migration(DataMigration): # ... models = { # ... } 

Как только я добавил правильное определение модели там (которое было в предыдущей миграции для меня), миграция данных работала.

  • Python South не собирает изменения, внесенные в метод add_to_class ()
  • Юг: выполните миграцию для столбца, который является как уникальным, так и недействительным
  • Django - South - Есть ли способ просмотра SQL, который он запускает?
  • Перенос базы данных на производство django
  • Миграции Django - можно ли использовать Юг в середине проекта?
  • юг: «Бэкэнд базы данных не принимает 0 в качестве значения для AutoField» (mysql)
  • Обновление с Django 1.6 (с юга) до 1.8 не изменяет «last_login» в пользовательской таблице
  • Как вызвать статические методы в классе модели django во время южной миграции
  • Python - лучший язык программирования в мире.