我遇到WTForms validators.optional()的问题,因为如果字段为空(WTForms docs),它会停止验证链。这意味着验证不会继续使用自定义函数,这可能会导致类型错误。
代码示例:
class MyForm(form):
myfield = TextField('My Field', [validators.Optional()])
def validate_myfield(form, field):
field.data = unicode(field.data)
即使可选内容为空,是否有任何方法或解决方法可以继续验证链,可能使用custom validators?
如果我以错误的方式接近问题,那么正确方向的提示会有所帮助!
答案 0 :(得分:7)
您只需更改验证器的列出顺序即可。如果您的自定义验证器放在可选验证器之前,它应该提供所需的效果,因为它们是按顺序进行评估的。