【问题标题】:Why does Django create migrations in the parent model's app when they are inherited?为什么Django在继承父模型的应用程序时会在它们中创建迁移?
【发布时间】:2021-02-28 03:10:39
【问题描述】:

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

from dep.models import ParentModel

class MyModel(ParentModel):
    # fields

我的模型和依赖模型都不是抽象的,通过运行makemigrations 会在dep 应用程序中创建一个新的迁移,遵循它当前的迁移树。

问题是我希望在我的自己的应用程序中进行新的迁移,因为弄乱依赖项的迁移结构是没有意义的,因为它会在更新时产生各种问题.

有没有办法解决这个问题?

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

【问题讨论】:

    标签: django django-migrations django-apps


    【解决方案1】:

    我实际上想通了,关键是继承模型的 Meta 类明确设置了 app_label,这也被我的模型继承,迫使它在同一个应用程序上进行迁移。

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 1970-01-01
      • 2016-10-08
      • 2014-12-24
      • 1970-01-01
      • 2020-09-25
      • 2016-10-25
      • 1970-01-01
      • 2019-03-28
      相关资源
      最近更新 更多