wtforms验证下拉值

时间:2017-02-01 08:10:25

标签: python flask wtforms

我正在使用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()])

2 个答案:

答案 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()])