【问题标题】:how to validate a QuerySelectField in flask如何验证烧瓶中的 QuerySelectField
【发布时间】:2020-11-25 14:49:42
【问题描述】:

有人知道 wtforms.validators 库中的验证器,它可以帮助我验证用户如果不从前端选择几乎一个选项就无法发送表单,我尝试使用 DataRequired、InputRequired、NoneOf。谢谢

【问题讨论】:

    标签: python-3.x flask


    【解决方案1】:

    阅读自定义验证器部分后,我可以理解如何编写自己的验证器以达到我需要的目的,即在用户选择此类表单的第一选择时阻止“__None”值,当您使用空白测试字段,主要问题是 form.validate_on_submit() 没有捕捉到这个模式,我的代码:

    class DeleteUser(FlaskForm):
        all_users = QuerySelectField(query_factory=query_all_users, 
                                    allow_blank=True,  
                                    #validators=[NoneOf('__None',message='Campo requerido')],
                                    blank_text='Select a user to delete...'
                                    )
        def check_selection(self, field):
            if field.data == None:
                raise ValidationError('Se debe seleccionar a un usuario')  `
     
    

    【讨论】:

      【解决方案2】:

      如果你想为你的表单变量定义一个验证器,你可以使用这条规则validate_your_form_variable_name

      class DeleteUser(FlaskForm):
          all_users = QuerySelectField(query_factory=query_all_users, 
                                      allow_blank=True,  
                                      #validators=[NoneOf('__None',message='Campo requerido')],
                                      blank_text='Select a user to delete...'
                                      )
      
          def validate_all_users(self, field):
              if field.data == None:
                  raise ValidationError('Se debe seleccionar a un usuario')  `
      

      【讨论】:

        猜你喜欢
        • 2013-07-27
        • 1970-01-01
        • 1970-01-01
        • 2020-04-28
        • 1970-01-01
        • 2016-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多