迁移中找不到模型(apps.get_model引发LookupError)

dna*_*njo 6 django django-migrations django-hvad

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

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)
    ]
Run Code Online (Sandbox Code Playgroud)

运行时,以下异常会增加:

LookupError: App 'myapp' doesn't have a 'modelb' model.
Run Code Online (Sandbox Code Playgroud)

ModelA继承models.Model并成功加载.另一方面,ModelB继承自TranslatableModel,因此它会中断.我已经读过(2年前)迁移曾经在加载抽象类(票号#21786票证#21519)时遇到问题,而TranslatableModel就是其中之一.

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

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

Nat*_*ate 0

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