8

我有以下迁移(为简单起见删除了逻辑):

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#21786ticket#21519)时遇到问题,TranslatableModel 就是其中之一。

我以前遇到过这个问题,最后我改用 RunSQL 进行迁移,但我想知道如何正确导入模型,因为必须有办法。

注意:包django-hvad没有迁移,因此没有任何依赖项要添加。

4

1 回答 1

0

如果您的所有迁移从头到尾都在运行,那么您引用的模型可能尚不存在于新数据库中。更新迁移中的依赖项列表,以引用定义这些模型的应用程序上的最后一个迁移文件。

于 2020-04-30T01:41:45.043 回答