2017-02-05 126 views
2

嘗試將字段從級聯遷移到「非級聯」似乎被忽略(Django 1.10)。Django模型 - 如何取消on_delete = models.CASCADE

以前型號:

class Run(models.Model): 
    ... 
    analysis_retention = models.ForeignKey('analysis_retention.AnalysisRetention', 
              null=True, default=None, on_delete=models.CASCADE) 

新型號:

class Run(models.Model): 
    ... 
    analysis_retention = models.ForeignKey('analysis_retention.AnalysisRetention', 
              null=True, default=None) 

「manage.py makemigrations」 沒有檢測到變化。 嘗試顯式None沒有幫助。

什麼是刪除級聯?

感謝

回答

2

CASCADE是默認值on_delete說法,看source。因此刪除on_delete=models.CASCADE將不起作用。您需要指定代碼中的on_delete值:

analysis_retention = models.ForeignKey('analysis_retention.AnalysisRetention', 
             null=True, default=None, on_delete=models.SET_NULL) 
+1

已完成。謝謝。 – user3139774