问题描述
我正在与几个人合作开发一个应用。我在做前端。
最近,我搞砸了迁移。在尝试修复它们几个小时后,我删除了所有表,并再次克隆了存储库。
由于没有迁移文件,我运行 manage.py makemigrations
(出于某种原因,它没有检测到所有应用程序,只有其中一个,我必须为每个应用程序手动调用 makemigrations
)。
然后,我运行 manage.py migrate
。我收到以下错误:
Related model 'User.user' cannot be resolved
因为 User 表与 User 表有 OnetoOneField 关系。此外,其他表也相互依赖。
我对这个问题的看法是列出所有导致问题的字段,进行迁移,取消注释,然后再次进行迁移。
我该如何解决?
解决方法
好的,我解决了这个特殊问题:
在 User 应用程序中有另一个模型,它指的是 User。自动创建的迁移文件在用户模型之前有这个模型,所以脚本失败,因为它不能引用尚未创建的模型。
我通过编辑迁移文件解决了这个问题,交换了创建模型的顺序 - 所以第二个模型可以引用第一个。