【问题标题】:wtforms validating dropdown valueswtforms 验证下拉值
【发布时间】:2017-02-01 08:10:24
【问题描述】:

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

【问题讨论】:

    标签: python flask wtforms


    【解决方案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])
    

    【讨论】:

      【解决方案2】:

      您只需为“请选择”选项提供一个非真实值并使用标准验证器:

      SelectField('Car', coerce=int,
                  choices=[(0, 'Please Select...'), (1, 'Honda')],
                  validators=[DataRequired()])
      

      【讨论】:

      • 谢谢巴特利特。我没想到它会以这种方式工作,但确实如此。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 2019-04-02
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多