Django makemigrations继续进行相同的更改

时间:2018-03-01 14:30:14

标签: python mysql django python-3.x

我有一个使用Django 1.10.7mysql 14.14 Distrib 5.5.54

构建的django项目

如果我这样做:

$ python manage.py makemigrations my_app

我明白了:

  

'my_app'的迁移:
    my_app应用/迁移/ 0023_auto_20180301_1419.py:
       - 改变联盟的实地参考

然后:

$ python manage.py migrate
  

执行的操作:
  应用所有迁移:admin,auth,contenttypes,my_app,sessions
  正在运行的迁移:
  应用my_app.0023_auto_20180301_1419 ...确定

然后,就在我之后:

$ python manage.py makemigrations my_app

我明白了:

  

'my_app'的迁移:
    my_app应用/迁移/ 0024_auto_20180301_1421.py:
       - 改变联盟的实地参考

正如您所看到的,它与以前相同。似乎django不能很好地进行迁移,或者确实没有检测到任何东西。

models.py中,该课程如下:

class League(models.Model):
    name = models.CharField(max_length=50)
    id_creator = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    id_tour = models.ForeignKey('Tour', on_delete=models.CASCADE)
    step = models.IntegerField(default=0)
    creation_date = models.DateTimeField(default=timezone.now)
    reference = models.CharField(max_length=20, default=id_generator())

    def __str__(self):
        return self.name

我做错了什么?

1 个答案:

答案 0 :(得分:5)

提供id_generator函数作为默认值,而不是它的返回值。每次创建新对象时都会调用该函数。

reference = models.CharField(max_length=20, default=id_generator)