使表单验证器可跳过的帮助程序

django-validatorchain的Python项目详细描述


动机

在欧洲2014年网站上工作时,我们遇到了这样的情况: 有一个非常昂贵的字段验证器。

遗憾的是,模型/表单字段上的validators-attribute总是作为 一个完整的(意味着该列表中的每个验证器都被执行,不管之前的 一个已经出错了)。所以,我们想有一种方法来标记某些验证器 如果字段被标记为无效,则不执行。

我们仍然希望使用字段验证器api,因为它保留了 不过,一切都很容易证明。

如何使用

from django.db import models

from validatorchain import ValidatorChain

from .validators import a_cheap_validator
from .validators import another_cheap_validator
from .validators import an_expensive_validator


class SomeModel(models.Model):
    field = models.CharField(
        max_length=100,
        validators=ValidatorChain()
            .add(a_cheap_validator)
            .add(an_expensive_validator, skip_on_error=True)
            .add(another_cheap_validator)
        )

这样,如果廉价验证器,则不会执行昂贵验证器 已引发异常,同时将执行另一个廉价验证器 再一次。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用Java获取“特定id XML数据”   用于在GET方法中筛选对象的java可选属性   简单的Java文件传输程序问题   JavaSpringMVC无法显示静态资源   java如何在javadoc示例中编写块注释?   java My程序在MergeSort数组中不能正确计数反转   Java Mail API电子邮件未按相反顺序显示   Java FX示例在NetBeans中打开时抛出错误   java递归在游戏配置单元中搜索蜘蛛实现的一个分支后停止   java selenium webdriver行为:是挂起还是什么?   JAVAawt。机器人鼠标垫没有任何效果   java试图让用户按enter键生成下一个素数   java在Android SQLite应用程序中没有这样的表,有2个表   java Elasticsearch RestClient连接由对等方重置   java如何设置log4j2 asyncQueueFullPolicy   elasticsearch java中的elasticsearch查询,用于检索特定字段中具有最少值的所有文档   java如何使用where子句从firestore中的集合中获取数据?   检测文件更改的java Eclipse侦听器?