django 中的验证器与 clean_field 方法的区别

7 投票
2 回答
2163 浏览
提问于 2025-04-18 00:29

djangoform 中,字段的 validator 和该字段的 clean_<field> 方法有什么区别呢?

2 个回答

0

我记得一个字段可以有多个验证器(比如最小长度、最大长度),这些验证器会通过默认的清理字段方法来调用。

10

Django会先运行内置的(默认的)字段验证器,然后再运行你自己定义的字段验证器(在你的模型中使用validators=[your_validator])。接着,Django会执行clean()clean<field>()这两个方法。

一个validatorclean_<field>()方法的主要区别在于,后者只适用于表单。validator可以同时用于表单和模型(所以在比如管理界面中也会用到)。

此外,重写clean_<field>()方法是验证数据与数据库中项目的推荐方式。

更多信息请查看https://docs.djangoproject.com/en/1.6/ref/forms/validation/

撰写回答