【问题标题】:Django models - how to cancel on_delete=models.CASCADEDjango 模型 - 如何取消 on_delete=models.CASCADE
【发布时间】:2017-06-22 07:54:21
【问题描述】:

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

消除级联的方法是什么?

谢谢

【问题讨论】:

    标签: python django django-models migration cascading-deletes


    【解决方案1】:

    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)
    

    【讨论】:

    • 工作。谢谢。
    猜你喜欢
    • 2018-11-03
    • 2018-07-27
    • 1970-01-01
    • 2016-06-17
    • 2020-07-10
    • 2022-01-20
    • 2020-11-08
    • 2019-06-09
    • 2019-06-11
    相关资源
    最近更新 更多