wtforms 验证下拉值
wtforms validating dropdown values
我正在使用 Flask 和 WTForms 组合一个表单,但是,当涉及到下拉菜单时,我希望每个下拉菜单都有一个 'please select' 选项,在选定的原因验证需要为假时,例如尚未选择值。
我是否需要使用正则表达式验证或自定义验证来实现此目的?如果我确实需要自定义验证,那么我该如何构建一个?
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()])
您可以在此处使用自定义验证器。看看 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])
您只需要给您的 'Please select' 选项一个非真值并使用标准验证器:
SelectField('Car', coerce=int,
choices=[(0, 'Please Select...'), (1, 'Honda')],
validators=[DataRequired()])
我正在使用 Flask 和 WTForms 组合一个表单,但是,当涉及到下拉菜单时,我希望每个下拉菜单都有一个 'please select' 选项,在选定的原因验证需要为假时,例如尚未选择值。
我是否需要使用正则表达式验证或自定义验证来实现此目的?如果我确实需要自定义验证,那么我该如何构建一个?
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()])
您可以在此处使用自定义验证器。看看 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])
您只需要给您的 'Please select' 选项一个非真值并使用标准验证器:
SelectField('Car', coerce=int,
choices=[(0, 'Please Select...'), (1, 'Honda')],
validators=[DataRequired()])