繁体   English   中英

迁移回滚期间无法从其他应用程序导入Django模型

[英]Unable to import Django model from the other app during migration roll-back

我正在为new_app创建数据迁移,并有可能将其回滚。

# This is `new_app` migration
class Migration(migrations.Migration):

    dependencies = [
    ]

    operations = [
        migrations.RunPython(import_data, reverse_code=delete_data)
    ]

此迁移会将一些数据添加到其他应用程序中定义的模型: my_other_app 要将模型导入要更新或删除记录的位置,请使用apps.get_model()方法。

# This is `new_app` migration
def import_data(apps, schema_editor):   
    model = apps.get_model('my_other_app', 'MyModel')

当我应用迁移时,它就像魅力。 但是,当我运行时尝试使用:~> manage.py migrate new_app zero回滚迁移时,出现异常: LookupError: No installed app with label 'my_other_app'. 回滚代码中的模型导入:

# This is `new_app` migration
def delete_data(apps, schema_editor):
    schema_model = apps.get_model('my_other_app', 'MyModel')

模型导入的代码是相同的,但是为什么在迁移回滚期间它不起作用? 现在,我有一个回滚期间直接模型import的解决方法。 不知道将来是否会引起麻烦。

确保dependencies包括您要引用的其他应用程序的最新迁移。 例如:

dependencies = [
    'my_other_app.0001_initial',
]

另外,请确保'my_other_app'位于您的INSTALLED_APPS设置中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM