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

lec*_*tif 5 python validation wtforms

我有WTForms validators.optional()的问题,因为如果字段为空(WTForms docs)它会停止验证链.这意味着验证不会继续使用自定义函数,这可能导致类型错误.

代码示例:

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

    def validate_myfield(form, field):
        field.data = unicode(field.data)
Run Code Online (Sandbox Code Playgroud)

是否有任何方法或解决方法来继续验证链,即使可选内容为空,也许使用自定义验证器

如果我以错误的方式接近问题,那么正确的方向提示会有所帮助!

dag*_*oof 8

您只需更改验证器的列出顺序即可.如果您的自定义验证器放在可选验证器之前,它应该提供所需的效果,因为它们是按顺序进行评估的.

  • 我知道这晚了 10 年,但在 WTForms 的最新版本中,添加可选会取消所有其他验证检查。 (3认同)