我已经成功地在 Django 1.7 中使用makemigrations
andmigrate
来更改、添加和删除字段。不幸的是,我在尝试重命名中间模型时无法正常工作。即我有两个模型A和B,通过模型X通过多对多字段链接,我想将X重命名为Y。
运行manage.py makemigrations
不会检测到重命名,而是删除 X 并添加 Y。但这不是问题。我将 Django 的自动生成脚本替换为:
[ migrations.RenameModel(old_name='X',new_name='Y'),
migrations.AlterField(
model_name='Y',
name='a',
field=models.ForeignKey(related_name=b'Y', to='B'),
)]
这给了我以下错误:
ValueError: Lookup failed for model referenced by field b: X
所以我猜它正在与包含模型旧名称的“通过”关系作斗争。我尝试添加一个迁移命令来更改该关系,将其更新为中间模型的新名称,但这也无济于事。