Django 1.8迁移奇怪的行为

时间:2018-02-12 17:11:37

标签: python django migration

我正在尝试使用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下创建迁移文件。

有人可以告诉我为什么会出现这种行为吗?

1 个答案:

答案 0 :(得分:0)

首先:模型不是子应用。

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

如果只有其他模型,则需要class Meta来指定app_label。

如果您有一个真正的子应用程序(即应用程序中的一个应用程序),则还需要将其添加到设置中。INSTALLED_APPS才能使其迁移正常进行。