我有以下迁移(为简单起见,删除了逻辑):
def migrate_existing_discounts(apps, _):
ModelA = apps.get_model('myapp', 'ModelA')
ModelB = apps.get_model('myapp', 'ModelB')
class Migration(migrations.Migration):
dependencies = [
('myapp', '0071_auto_20160531_1342'),
]
operations = [
migrations.RunPython(migrate_existing_discounts)
]
运行时会出现以下异常:
LookupError: App 'myapp' doesn't have a 'modelb' model.
ModelA
继承自models.Model
,并且已成功加载。另一方面,ModelB
继承自TranslatableModel,因此它会中断。我已经读过(2年前)迁移以前在加载抽象类(ticket#21786和ticket#21519)时遇到问题,而TranslatableModel就是其中之一。
之前我遇到过这个问题,最后我转而使用RunSQL迁移,但我想知道如何正确导入模型,因为必须有办法。
注意:程序包django-hvad没有迁移,因此无法添加任何依赖项。
答案 0 :(得分:0)
如果所有迁移都从头到尾运行,则您引用的模型可能尚未存在于新数据库中。在迁移过程中更新依赖项列表,以引用定义了这些模型的应用程序上的最后一个迁移文件。