不使用modelform的django模型验证

Posted

技术标签:

【中文标题】不使用modelform的django模型验证【英文标题】:django model validation without using modelform 【发布时间】:2012-11-03 09:08:27 【问题描述】:

我想在不使用 ModelForms 的情况下对 django 模型进行字段验证。 有没有办法在调用 save() 时调用 clean_fieldname 方法?

【问题讨论】:

您可以声明任何自定义表单并自己编写一个干净的方法。然后你可以覆盖 Form save() 方法,让它保存、删除或做任何你想做的事情。 【参考方案1】:

clean_fieldname 方法属于表单或模型表单。模型中没有代码来做同样的事情,你必须自己实现它。

我建议您为您的字段写一个validator,然后在保存之前调用full_clean() 以验证您的实例。

【讨论】:

感谢调用 full_clean() 将完成工作。除了 full_clean() 之外,还有没有像验证器这样更简洁的方法来编写数据操纵器让它在 save() 上自动调用? 我之前在堆栈溢出上遇到过answered similar questions,希望他们能帮助进一步解释。

以上是关于不使用modelform的django模型验证的主要内容,如果未能解决你的问题,请参考以下文章

Django Modelform - 它没有验证,为什么?

Django Modelform - 它没有验证,为啥?

django - 使用 FormView 和 ModelForm 更新模型

显示 ModelForms 的 django 表单验证错误

django 中的 ModelForms 是不是仅用于发布?

四用django2.0来开发后台会员管理 ModelForm表单的使用方法以及数据验证