如何修改wtforms_components中Unique()验证器的错误提示信息?
修改WTForms-Components Unique验证器的错误提示
我刚好熟悉你使用的WTForms-Components 0.9.7版本,问题其实出在参数传递的方式上——Unique验证器的错误提示需要通过关键字参数message来指定,而不是像DataRequired()那样直接传位置参数。
你之前的写法之所以无效,是因为Unique的构造函数并没有把错误消息作为第三个位置参数来接收,它的参数定义里,错误提示是通过命名参数message传入的。
正确的写法示例
from wtforms_components import Unique class SignupForm(): email = EmailField('Email', validators=[ Unique( User.email, get_session=lambda: db.session, message='THIS IS MY NEW ERROR MESSAGE.' ) ])
为什么之前的写法不生效?
对比DataRequired和Unique的参数设计:
DataRequired的构造函数把错误消息作为第一个可选位置参数,所以可以直接写DataRequired('自定义提示')- 而你使用的版本中,
Unique的参数顺序是:column(必填)→get_session(必填)→message(可选,需通过关键字指定),所以必须显式写message=xxx才能覆盖默认提示。
这样修改后,当邮箱已存在时,表单就会返回你自定义的错误提示了。
内容的提问来源于stack exchange,提问作者jollycat
相关产品推荐
相关产品推荐

