gpt4 book ai didi

python - Django makemigrations 不断进行相同的更改

转载 作者:行者123 更新时间:2023-11-29 04:15:35 28 4
gpt4 key购买 nike

我有一个用 Django 1.10.7mysql 14.14 Distrib 5.5.54 构建的 django 项目

如果我这样做:

$ python manage.py makemigrations my_app

我得到:

Migrations for 'my_app':
my_app/migrations/0023_auto_20180301_1419.py:
- Alter field reference on league

然后:

$ python manage.py migrate

Operations to perform:
Apply all migrations: admin, auth, contenttypes, my_app, sessions
Running migrations:
Applying my_app.0023_auto_20180301_1419... OK

然后,紧接着,我做:

$ python manage.py makemigrations my_app

我得到:

Migrations for 'my_app':
my_app/migrations/0024_auto_20180301_1421.py:
- Alter field reference on league

如您所见,它与之前的改动相同。看起来 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)

关于python - Django makemigrations 不断进行相同的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49051877/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com