How do I validate wtforms fields against one another?

前端 未结 3 1237
感情败类
感情败类 2020-12-10 11:09

I have three identical SelectField inputs in a form, each with the same set of options. I can\'t use one multiple select.

I want to make sure that the u

3条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-10 11:39

    You can override validate in your Form...

    class MyForm(Form):
        select1 = SelectField('Select 1', ...)
        select2 = SelectField('Select 2', ...)
        select3 = SelectField('Select 3', ...)
        def validate(self):
            if not Form.validate(self):
                return False
            result = True
            seen = set()
            for field in [self.select1, self.select2, self.select3]:
                if field.data in seen:
                    field.errors.append('Please select three distinct choices.')
                    result = False
                else:
                    seen.add(field.data)
            return result
    

提交回复
热议问题