我的模型中有这个字段:
customer = models.ManyToManyField(Customer)
由于一些变化,我意识到我必须改变与此的关系:
customer = models.ForeignKey(Customer)
我曾尝试一次又一次地执行 makemigrations app_name
和 migrate
,但仍会产生错误。我也尝试删除管理站点中模型的现有数据。
答案 0 :(得分:1)
如果没有数据丢失,则无法从ManyToManyField到ForeignKey进行简单的更改。迁移问题可以通过将不可能的迁移拆分为较小的迁移来解决。例如如果数据很重要
A)数据丢失:
B)部分数据丢失,只有ManyToManyField的第一个元素将被转换为每个对象到ForeignKey:
使用其他名称makemigrations
,makemigrations --empty
添加ForeignKey,将其编辑为Data Migration以复制列数据,删除ManyToManyField; makemigrations
,makemigrations --empty
,
edit it to rename the field