wtforms 验证下拉值

Fli*_*ake 5 python flask wtforms

我正在使用 Flask 和 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()])
Run Code Online (Sandbox Code Playgroud)

MrL*_*eeh 2

您可以在此处使用自定义验证器。查看WTForms 文档中的自定义验证器

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])
Run Code Online (Sandbox Code Playgroud)