为什么 Django 在继承时会在父模型的应用程序中创建迁移?

Why does Django create migrations in the parent model's app when they are inherited?

我有以下设置,外部依赖项 dep 已安装并在我的 Django 项目中使用,我正在我自己的应用程序中扩展其中一个模型,如下所示:

from dep.models import ParentModel

class MyModel(ParentModel):
    # fields

我的模型和依赖模型都是不是抽象的,并且运行宁makemigrationsdep应用程序中创建了一个新的迁移,跟随它的当前迁移树。

问题是我希望在 my 自己的应用程序中进行新的迁移,因为扰乱依赖项的迁移结构没有意义,因为它会创建各种类型每次更新都会出现问题。

有办法解决这个问题吗?

我已经尝试将迁移手动移动到我的应用程序,但是当我再次 运行 makemigrations 时,它会以我上面提到的相同方式被删除并重新创建。

我实际上弄明白了,重点是继承模型的 Meta class 明确设置了 app_label ,这也被我的模型继承,迫使它成为在同一应用程序上迁移。

要修复它,我只需要在我的模型中设置相同的属性,现在迁移已按我的预期创建。

这是基本模型和我的示例:

class ParentModel(models.Model):
    class Meta:
        app_label = "dep"


class MyModel(ParentModel):
    class Meta:
        app_label = "my_app"