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

标签 python django django-models migration cascading-deletes

尝试将字段从级联迁移到“非级联”似乎被忽略(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)

关于python - Django 模型 - 如何取消 on_delete=models.CASCADE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049736/

相关文章:

php - "Self Healing"的 OO 模式和/或结构化方法?

python - 理解 keras 日志输出时出现问题

mysql - Django 连接池和时间字段

django - 使用扩展 Django 用户模型的代理模型自定义 request.user

python - TypeError : int() argument must be a string or a number, 不是 'Model Instance'

python - 合并两个 PySpark DataFrame 会产生意想不到的结果

python - 如何在一行中编写一个for循环和多个if语句?

django - Django 模型和 ModelForms 中的空白、空和必需

python - Django:使用 'can_order' 更改 FormSet 中表单的顺序

python - 保持 Django 模型清洁方法验证外键对象并使用 ModelForm 保存