django 中的验证器与 clean_field 方法的区别
在 django
的 form
中,字段的 validator
和该字段的 clean_<field>
方法有什么区别呢?
2 个回答
0
我记得一个字段可以有多个验证器(比如最小长度、最大长度),这些验证器会通过默认的清理字段方法来调用。
10
Django会先运行内置的(默认的)字段验证器,然后再运行你自己定义的字段验证器(在你的模型中使用validators=[your_validator]
)。接着,Django会执行clean()
和clean<field>()
这两个方法。
一个validator
和clean_<field>()
方法的主要区别在于,后者只适用于表单。validator
可以同时用于表单和模型(所以在比如管理界面中也会用到)。
此外,重写clean_<field>()
方法是验证数据与数据库中项目的推荐方式。
更多信息请查看https://docs.djangoproject.com/en/1.6/ref/forms/validation/。