【问题标题】:Django 1.8 migration strange behaviourDjango 1.8 迁移奇怪行为
【发布时间】:2018-02-12 17:11:37
【问题描述】:

我正在尝试使用 django 1.8 修改现有的 School 应用程序,该应用程序具有 students, class, scores etc 等子应用程序。

我的班级模型:

class Class(Object):
    student = models.ForeignKey(School, related_name='school_student')
    section = models.CharField()
    roll = models.IntegerField()

当我运行python manage.py makemigrations class 时,我收到一条消息No changes detected in app 'class'

但是当我运行python manage.py makemigrations 时,会检测到更改并在school directory 下创建迁移文件,但不在class directory 下。

但是如果我添加一个meta 类,什么时候到上面的模型。

class Meta:
    unique_together = ('student', 'roll')

现在如果我运行python manage.py makemigrations class,则会检测到更改并在class directory 下创建迁移文件。

谁能告诉我为什么会有这样的行为?

【问题讨论】:

    标签: python django migration


    【解决方案1】:

    首先:模型不是子应用。

    如果这很清楚:IIRC,Django 1.8 需要class Meta 才能知道模型属于哪个应用程序。

    如果你只有一个额外的模型,你需要class Meta来指定app_label。

    如果您有一个真正的子应用(即应用中的一个应用),您还需要将其添加到 settings.INSTALLED_APPS 以使其迁移正常工作。

    【讨论】:

      猜你喜欢
      • 2015-06-16
      • 2015-09-08
      • 2015-12-08
      • 2015-11-24
      • 2015-11-12
      • 1970-01-01
      • 2015-10-28
      • 2019-10-19
      • 1970-01-01
      相关资源
      最近更新 更多