为了简化,我有一个模型,比如说,
class Parent(models.Model):
field_a = models.CharField(max_length=40)
还有另一个包含图像字段的模型,它通过外键将自身绑定(bind)到父实例:
class ParentPicture(models.model):
parent = models.ForeignKey(Parent)
picture = models.ImageField(upload_to=upload_path)
is_used = models.BooleanField(default=False)
原计划是支持parent多张图片,每次只能使用一张,现在想只支持一张,并包含在parent model中,所以ParentPicture
可以被销毁,并且 Parent
看起来像这样:
class Parent(models.Model):
field_a = models.CharField(max_length=40)
picture = models.ImageField(upload_to=upload_path)
我不确定将 picture
字段移动到新模型的最佳方法,并包括 ParentPicture
中具有 is_used 的实例
标志。
有没有一种简单的方法可以使用 Django 自动执行此操作,或者我是否需要更改 Parent
模型,迁移更改,然后运行脚本来遍历 ParentPicture
模型并适当复制,然后仅完成后,删除ParentPicture
模型?
感谢您的帮助/建议!
最佳答案
我认为没有一种“自动”的方式来移动字段,所以你可以这样做:
- 在
Parent
类中添加picture
字段 - 生成并运行模式迁移
- 编写并运行 data migration用模型
ParentPicture
中的值填充新的 - 删除旧的/过时的模型/字段,生成新的模式迁移并运行它
picture
字段
关于python - 如何将一个字段从一个模型移动到另一个模型,同时仍然保留数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37171077/