【发布时间】:2011-05-25 09:37:37
【问题描述】:
我只是好奇是否有人知道 django 的 orm 是否有充分的理由不对模型调用“full_clean”,除非它被保存为模型表单的一部分。
请注意,当您调用模型的 save() 方法时,不会自动调用 full_clean()。当您想为自己手动创建的模型运行一步模型验证时,您需要手动调用它。 django's full clean doc
(注意:为 Django 1.6 更新了引用...以前的 django 文档也对 ModelForms 提出了警告。)
人们是否有充分的理由不想要这种行为?我认为如果您花时间向模型添加验证,您会希望每次保存模型时都运行验证。
我知道如何让一切正常工作,我只是在寻找解释。
【问题讨论】:
-
非常感谢您提出这个问题,它阻止了我更多时间用头撞墙。我创建了一个可以帮助其他人的 mixin。查看要点:gist.github.com/glarrain/5448253
-
我最后使用信号来捕获
pre_save钩子并在所有捕获的模型上执行full_clean。
标签: python django django-models django-validation