操作错误-没有这样的列django-ForeignKey

操作错误-没有这样的列django-ForeignKey,django,model,django-migrations,Django,Model,Django Migrations,我的模型中有此字段: customer = models.ManyToManyField(Customer) 由于一些变化,我意识到我必须改变与此的关系: customer = models.ForeignKey(Customer) 我尝试了一次又一次地执行makemigrations应用程序_name和migrate,但仍然产生了错误。我还尝试删除管理站点中模型的现有数据。如果不丢失数据,从ManyToManyField到ForeignKey的简单更改是不可能的。迁移问题可以通过将不可能的

我的模型中有此字段:

customer = models.ManyToManyField(Customer)
由于一些变化,我意识到我必须改变与此的关系:

customer = models.ForeignKey(Customer)

我尝试了一次又一次地执行
makemigrations应用程序_name
migrate
,但仍然产生了错误。我还尝试删除管理站点中模型的现有数据。

如果不丢失数据,从ManyToManyField到ForeignKey的简单更改是不可能的。迁移问题可以通过将不可能的迁移拆分为较小的迁移来解决。e、 g.如果数据很重要

A) 数据丢失时:

  • 删除ManyToManyField
  • makemigration
  • 添加外键
  • makemigration
B) 在部分数据丢失的情况下,对于每个对象,只有ManyToManyField的第一个元素将转换为ForeignKey:
添加具有其他名称的ForeignKey,
makemigrations
makemigrations--empty
,编辑它以复制列数据,删除ManyToManyField
makemigrations
makemigrations--empty