我正在使用Flask& amp;但是,WTForms,当涉及到下拉菜单时,我希望有一个'请选择'每个下拉列表的选项,在选定的原因验证要求为假,例如,尚未选择某个值。
我是否需要使用正则表达式验证或自定义验证来实现此目的?如果我确实需要自定义验证,那么我该如何构建一个呢?
CAR_MAKES = [('-1', "Please select a vehicle make..."), (1, 'Honda'),
(2, 'Ford'), (3, 'BMW')]
dd_car_makes = SelectField('dd_car_makes', choices=CAR_MAKES,
validators=[DataRequired()])
答案 0 :(得分:1)
您可以在此处使用自定义验证程序。看看Custom Validators in the WTForms Documentation。
def your_validator(form, field):
if field.data == -1:
raise ValidationError('Please select a vehicle make...')
dd_car_makes = SelectField('dd_car_makes', choices=CAR_MAKES,
validators=[DataRequired(), your_validator])
答案 1 :(得分:1)
您只需要提供“请选择'选项非真实值并使用标准验证器:
SelectField('Car', coerce=int,
choices=[(0, 'Please Select...'), (1, 'Honda')],
validators=[DataRequired()])