我正在使用wtforms在应用程序中构建大量表单。我需要执行并向用户显示“表单级”验证错误。
没有记录/支持的方法来执行此操作。那样就好。
我知道我可以覆盖表单validate方法,在那里执行我的检查,并将我的额外验证错误放在表单的_errors属性上。
这种方法的问题在于form._errors还包含所有字段级验证错误(当然,也可以通过每个字段的errors属性访问)。
因此,我想要一种干净的,API一致的方式来返回仅表单级验证错误。我可以在_error属性上自己解决这个问题,但我对这个问题的其他解决方案感兴趣。
如何在wtforms中进行表单级验证?
答案 0 :(得分:0)
Ther在wtforms google group中解决了这个问题:
最简单的方法是为表单定义中的一个字段添加validate_foo方法,然后检查其他字段。所有验证器都接收表单和字段作为参数。
但我宁愿使用烧瓶flash messages
我在wtforms中填充feature request也许他们让这个功能发生了。 :)
答案 1 :(得分:0)
正如snakecharmerb 所说:“表单级别验证将在wtforms 3 (github commit) 中可用”
但目前 WTForms 3 尚未发布,因此如果您的条件不满足,我建议您覆盖 validate()
表单方法并附加 flash
消息。示例如下。
from flask import flash
def validate(self):
result = super().validate() # Call to parent class' validate method
valid = this or that # Your testing condition
if not valid: # Attach flash message if your validation fails
flash('Your message', 'form_error')
return result and valid