如何解决迁移错误?

时间:2017-10-09 10:38:02

标签: mysql django

我有两个模型,即; Model1和Model2。 Model2中的一个字段充当Model1的外键。这里Model1的主键是' id'。但是现在我修改了主键字段,删除了id并添加了名为 demo_num 的字段作为主键。现在我的模型就像是

class Model1(models.Model):
  dem_num = models.IntegerField(primary_key=True)

class Model2(models.Model):
   dem_fk = models.Foreignkey('Model1')

但是当我正在进行迁移时,它显示错误,如

  

django.db.utils.OperationalError:(1829,"不能删除列' id':在表Model2的外键约束中需要)

如何解决这个问题?

注意:     如果不删除迁移文件,我想这样做

1 个答案:

答案 0 :(得分:0)

首先创建新主键dem_num而不删除Model1中的id

class Model1(models.Model):
   dem_num = models.IntegerField(primary_key=True)

然后将此字段作为外键链接到Model2

class Model2(models.Model):
   dem_fk = models.Foreignkey('Model1', to_field='dem_num')