Django makemigrations继续进行相同的更改

问题描述 投票:1回答:1

我有一个用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

我做错了什么?

python mysql django python-3.x
1个回答
5
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.