gpt4 book ai didi

python - Django 迁移删除字段

转载 作者:行者123 更新时间:2023-12-05 08:27:11 26 4
gpt4 key购买 nike

所以我在我的 Django 项目中有一个模型(为了参数称为“app”),例如;

class ModelA(models.Model):
fieldA = models.IntegerField(default=0)

我可以运行 python manage.py makemigrations app;这给了我

Migrations for 'app':
app/migrations/0001_initial.py
- Create model ModelA

如果我然后向 ModelA 添加一个新字段,它看起来像;

class ModelA(models.Model):
fieldA = models.IntegerField(default=0),
fieldB = models.IntegerField(default=1)

然后再次运行 makemigrations,我明白了;

Migrations for 'app':
app/migrations/0002_auto_20170529_1737.py
- Remove field fieldA from modela
- Add field fieldB to modela

自动生成的文件支持这一点;

operations = [
migrations.RemoveField(
model_name='modela',
name='fieldA',
),
migrations.AddField(
model_name='modela',
name='fieldB',
field=models.IntegerField(default=1),
),
]

为什么要删除 fieldA?

我的理解是它应该只对模型的更改编写脚本,即该字段 B 已添加。

最佳答案

问题是在添加 fieldb 时,您在 fielda 行中添加了一个逗号:

fieldA = models.IntegerField(default=0),

您应该删除逗号并删除 0002 迁移。然后,当您重新运行 makemigrations 时,Django 将不再尝试删除 fielda

关于python - Django 迁移删除字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44247985/

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