小编典典

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

all

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

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

(注意:为 Django 1.6 更新了引用…以前的 django 文档也对 ModelForms 提出了警告。)

人们是否有充分的理由不想要这种行为?我认为如果您花时间向模型添加验证,您会希望每次保存模型时都运行验证。

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


阅读 103

收藏
2022-08-20

共1个答案

小编典典

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

您可能感兴趣的来源:

2022-08-20