我只是好奇是否有人知道django的orm之所以不在模型上调用“full_clean”,是因为它被保存为模型表单的一部分。
Note that full_clean() will not be called automatically when you call your model’s save() method. You’ll need to call it manually when you want to run one-step model validation for your own manually created models. django's full clean doc
(注:Django 1.6的报价更新。。。以前的django文档也有关于ModelForms的警告。)
人们不希望这种行为有什么好的理由吗?我认为,如果您花时间将验证添加到模型中,则希望每次保存模型时都运行该验证。
我知道如何让一切正常工作,我只是想找个解释。
AFAIK,这是因为向后兼容。此外,具有排除字段的模型窗体、具有默认值的模型、pre_save()信号等也存在问题
您可能感兴趣的来源:
调用
full_clean
方法的最简单方法是重写model
中的save
方法:考虑到兼容性,django内核中没有启用保存时自动清除。
如果我们正在启动一个新项目,并且希望Model上的默认
save
方法能够自动清理,那么我们可以在保存每个模型之前使用以下信号进行清理。相关问题 更多 >
编程相关推荐