为什么 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
我的模型和依赖模型都是不是抽象的,并且运行宁makemigrations
在dep
应用程序中创建了一个新的迁移,跟随它的当前迁移树。
问题是我希望在 my 自己的应用程序中进行新的迁移,因为扰乱依赖项的迁移结构没有意义,因为它会创建各种类型每次更新都会出现问题。
有办法解决这个问题吗?
我已经尝试将迁移手动移动到我的应用程序,但是当我再次 运行 makemigrations
时,它会以我上面提到的相同方式被删除并重新创建。
我实际上弄明白了,重点是继承模型的 Meta
class 明确设置了 app_label
,这也被我的模型继承,迫使它成为在同一应用程序上迁移。
要修复它,我只需要在我的模型中设置相同的属性,现在迁移已按我的预期创建。
这是基本模型和我的示例:
class ParentModel(models.Model):
class Meta:
app_label = "dep"
class MyModel(ParentModel):
class Meta:
app_label = "my_app"
我有以下设置,外部依赖项 dep
已安装并在我的 Django 项目中使用,我正在我自己的应用程序中扩展其中一个模型,如下所示:
from dep.models import ParentModel
class MyModel(ParentModel):
# fields
我的模型和依赖模型都是不是抽象的,并且运行宁makemigrations
在dep
应用程序中创建了一个新的迁移,跟随它的当前迁移树。
问题是我希望在 my 自己的应用程序中进行新的迁移,因为扰乱依赖项的迁移结构没有意义,因为它会创建各种类型每次更新都会出现问题。
有办法解决这个问题吗?
我已经尝试将迁移手动移动到我的应用程序,但是当我再次 运行 makemigrations
时,它会以我上面提到的相同方式被删除并重新创建。
我实际上弄明白了,重点是继承模型的 Meta
class 明确设置了 app_label
,这也被我的模型继承,迫使它成为在同一应用程序上迁移。
要修复它,我只需要在我的模型中设置相同的属性,现在迁移已按我的预期创建。
这是基本模型和我的示例:
class ParentModel(models.Model):
class Meta:
app_label = "dep"
class MyModel(ParentModel):
class Meta:
app_label = "my_app"