2017-10-09 44 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