Skip to main content
 首页 » 编程设计

python之Django 模型之如何取消 on_delete=models.CASCADE

2024年10月01日8飞鱼

尝试将字段从级联迁移到“非级联”似乎被忽略了(Django 1.10)。

以前的型号:

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 没有帮助。

消除级联的方法是什么?

谢谢

请您参考如下方法:

CASCADEon_delete 参数的默认值,参见 source .所以删除 on_delete=models.CASCADE 不会有效果。您需要在代码中指定 on_delete 值:

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