一尘不染

django的model.save()为什么不调用full_clean()?

django

我只是很好奇,是否有人知道django的orm是否有充分的理由不对模型调用’full_clean’,除非将其保存为模型表单的一部分。

请注意,当你调用模型的save()方法时,不会自动调用full_clean()。要为自己创建的模型运行单步模型验证时,需要手动调用它。 django的完整档案

(注意:报价已针对Django 1.6更新…之前的django文档也对ModelForms提出了警告。)

人们为什么不希望这种行为有充分的理由?我想如果你花时间将验证添加到模型中,则希望每次保存模型时都运行验证。

我知道如何使一切正常工作,我只是在寻找一种解释。


阅读 614

收藏
2020-03-26

共1个答案

一尘不染

FAIK,这是因为向后兼容。带有排除字段的ModelForms,具有默认值的模型,pre_save()信号等也存在问题。

2020-03-26