我有两个模型,即; 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的外键约束中需要)
如何解决这个问题?
注意: 如果不删除迁移文件,我想这样做
答案 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')