【问题标题】:How change from ForeignKey to ManyToManyField in Django?如何在 Django 中从 ForeignKey 更改为 ManyToManyField?
【发布时间】:2016-03-28 12:09:24
【问题描述】:

我正在尝试将一个变量从 ForeignKey 更改为 ManyToManyField。尝试执行命令迁移时出现以下错误:

“ValueError:无法将字段 videos.Video.machine 更改为 videos.Video.machine - 它们不是兼容类型(您无法更改 M2M 字段或从 M2M 字段更改,或通过 = 在 M2M 字段上添加或删除)”

如何解决这个问题?

【问题讨论】:

  • 您可以添加一个 m2m 字段,执行您的自定义迁移,然后在另一个迁移中删除旧的并可能重命名新的。

标签: python django


【解决方案1】:

这里真的有两种方法(我能想到的):

  1. 创建一个临时字段来存储videos.Video.machine的当前数据,移除video.Video.machine字段,将videos.Video.machine重新添加为m2m字段,将临时字段中的数据迁移到这个新字段中,并删除临时字段。
  2. 新建一个字段,即m2m的videos.Video.machines,将当前字段videos.Video.machine复制进去,然后移除videos.Video.machine字段。

我个人会选择第二个,因为它不仅更容易而且命名更有意义!

【讨论】:

    猜你喜欢
    • 2021-04-30
    • 2013-09-22
    • 2018-06-26
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 2011-10-13
    • 2011-11-12
    • 1970-01-01
    相关资源
    最近更新 更多