WTForms validators.optional:继续验证空字段吗?

10 投票
1 回答
10353 浏览
提问于 2025-04-16 14:51

我在使用WTForms的validators.optional()时遇到了一个问题,因为如果字段为空,它会停止验证流程(WTForms文档)。这意味着后面的自定义验证函数就不会继续执行,这可能会导致类型错误。

代码示例:

class MyForm(form):
    myfield = TextField('My Field', [validators.Optional()])

    def validate_myfield(form, field):
        field.data = unicode(field.data)

有没有什么方法或者解决办法可以让验证流程继续,即使可选内容是空的,可能使用自定义验证器

如果我处理这个问题的方式不对,给我一些正确方向的提示会很有帮助!

1 个回答

11

你可以简单地调整一下验证器的顺序。如果把你自己定义的验证器放在可选验证器之前,这样就能达到你想要的效果,因为它们会按照顺序进行检查。

撰写回答