2017-10-09 83 views
0

我有两个模型,即; Model1和Model2。 Model2中的一个字段充当Model1的外键。这里Model1的主键是'id'。但现在我修改了主键字段,删除ID和添加的字段名为demo_num作为主要key.Now我的模特looke像如何解决迁移错误?

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, "Cannot drop column 'id': needed in a foreign key constraint of table Model2)

如何解决这个问题?

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

+0

您需要清理'Model2'或creat e数据迁移,您必须确保任何方式:没有其他解决方案然后更改“PK”字段 –

回答

0

首先创建新的主键dem_num没有型号1删除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') 
+0

是否适用于您? – Satendra