Django 1.7 迁移找不到应用程序。

5
我正在为应用程序Notification创建数据迁移,我在这里使用了来自应用程序accounts的模型引用Manager
Manager = apps.get_model("accounts", "Manager")

它抛出错误:
    self.code(from_state.render(), schema_editor)
  File "/home/notifications/migrations/0004_auto_20150720_0127.py", line 12, in set_notification_setttings
    Manager = apps.get_model("accounts", "Manager")
  File "/home/local/lib/python2.7/site-packages/django/apps/registry.py", line 202, in get_model
    return self.get_app_config(app_label).get_model(model_name.lower())
  File "/home/local/lib/python2.7/site-packages/django/apps/registry.py", line 150, in get_app_config
    raise LookupError("No installed app with label '%s'." % app_label)
LookupError: No installed app with label 'accounts'

虽然我尝试了类似以下的 shell 命令,它也起作用了:

>> from django.apps import apps
>> apps.get_app_config('accounts').get_model('Manager'.lower())
>> accounts.models.Manager

为什么在迁移时会失败?
1个回答

8

你的问题可能已经得到解决,但其他人可能会遇到这个问题。

如果Manager模型不在创建迁移的同一应用程序中,则需要在迁移中添加对应用程序accounts的依赖关系。例如:

class Migration(migrations.Migration):
    dependencies = [
        ('Current_App_Name', 'XYZ_Last_Migration_of_App'),
        ('accounts', '0012_auto_XYZ'),
        ...,
    ]`
    ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接