我有一个用Django 1.10.7
和mysql 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
我做错了什么?
提供id_generator
函数作为默认值而不是它的返回值。每次创建新对象时都会调用该函数。
reference = models.CharField(max_length=20, default=id_generator)