3

每次我尝试进行migrate初始迁移时,紧接着makemigrations,我都会收到如下错误:

django.db.migrations.exceptions.InvalidBasesError: Cannot resolve bases for [<ModelState: 'Project.Class'>]
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)

我认为发生这种情况的原因是迁移中模型的顺序operations0001_initial.py正确。从其他类继承的类的操作被添加到它们的父类之前。在我重新排序操作后,它可以工作:Process finished with exit code 0. 凉爽的!makemigrations但是,如果不每次都这样做,我怎么做呢?

谢谢!

附言。我尝试在模型中重新排序模型的导入顺序,__init__.py但没有奏效。

4

1 回答 1

2

如果您的 Django 项目中有多个应用程序,并且在一个应用程序的模型中引用了另一个应用程序的模型- 这可能会导致此类冲突。

建议为每个应用单独创建迁移,并在引用迁移文件时引用另一个应用迁移作为依赖项。

python manage.py makemigrations app-one
python manage.py makemigrations app-two

# example of referencing dependent migration,
# so app-two 0001 migrations runs after app-one 0001 migration
# app-two/migrations/0001-initial.py

dependencies = [("app-one", "0001-init.py")]
于 2020-01-13T10:54:29.240 回答