我在 Django 项目中创建了一个模型。我错误地设置了
date_created
和 date_updated
字段,如下所示:
class Article(models.Model):
date_created = models.DateTimeField(auto_now=True)
date_updated = models.DateTimeField(auto_now_add=True)
我应该将 date_created 设置为
auto_now_add=True
,将 date_updated 设置为 auto_now=True
。现在,当我想将模型名称彼此更改为
class Article(models.Model):
date_updated = models.DateTimeField(auto_now=True)
date_created = models.DateTimeField(auto_now_add=True)
Django 检测到我刚刚更改了字段的定义并创建了一个迁移
operations = [
migrations.AlterField(
model_name='article',
name='date_created',
field=models.DateTimeField(auto_now_add=True),
),
migrations.AlterField(
model_name='article',
name='date_updated',
field=models.DateTimeField(auto_now=True),
),
]
但我实际上对它们进行了“重命名”。当我手动将迁移设置为 RenameField
时,它根本不起作用,因为 Django 检测到我尚未为所做的更改创建迁移。
迁移文件并重命名三个:
operations = [
migrations.RenameField(
model_name='article',
old_name='date_created',
name='date_updated1',
),
migrations.RenameField(
model_name='article',
old_name='date_updated',
name='date_created',
),
migrations.RenameField(
model_name='article',
old_name='date_updated1',
name='date_updated',
),
]
这最终将交换两个字段。