我只是好奇是否有人知道Django的orm为什么不在模型上调用‘full_lean’,除非它是作为模型表单的一部分保存的.

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

(注:Django 1.6的报价已更新.以前的Django文档也有关于ModelForms的警告.)

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

我知道怎么让一切正常运转,我只是在寻求一个解释.

推荐答案

好吧,这是因为向后兼容.带有排除字段的模型表单、带有默认值的模型、pre_save()信号等也存在问题.

你可能感兴趣的来源:

Django相关问答推荐

Django相关对象引用模板

根据当前对象中的多对多字段过滤对象

NoneType对象没有属性保存Django

在 Django Rest Framework 视图中,request.user 是在请求​​到达视图之前进行数据库调用还是数据库调用发生?

组织大型 Django 元素的指南

如何使用 jQuery 建立 Django 网站

try 编辑/创建时,特定模型的 Django 管理员挂起(直到超时错误)

如何在不使用 sudo 的情况下安装 virtualenv?

用于测试文件下载的 Django 单元测试

在 Django 过滤器语句中,__exact 和等号 (=) 有什么区别?

Django:将原始html(来自数据库)显示为html,而不是呈现

更新Django模型对象多个字段的有效方法

在 Django 中获取下一个和上一个对象

django类型对象Http404没有属性get

Django:如何使用动态(非模型)数据预填充 FormView?

Django Admin:如何在同一视图中显示来自两个不同模型的字段?

Django:从视图中添加 non_field_error?

暂时禁用 Django 缓存

django select_related - 何时使用它

从 git 存储库中删除并忽略所有具有扩展名的文件