在多个字段上进行Flask WTform验证

时间:2018-09-02 05:23:05

标签: validation flask-wtforms wtforms

基于两个或多个条目验证WTform的最佳方法是什么?即在下面的表格中,我要验证数据库中不存在具有提供的名称和地址的公司。

<div id="container">
  <input type="text" id="input1">
  <input type="text" id="input2">
</div>

<input type="text" id="input3">

类似这样的东西

class CompanyForm(FlaskForm):
    name=StringField('Company Name', validators=[DataRequired()])
    address=StringField('Street Address', validators=[DataRequired()])

我阅读了文档以及有关S.O的类似问题。但是我还是不太明白。

1 个答案:

答案 0 :(得分:0)

尝试类似的方法。.(摘录here的修订版)

class CompanyForm(FlaskForm):
    name = StringField('Company', [validators.DataRequired()])
    address = StringField('Street Address', [validators.DataRequired()])

    def validate(self):
        rv = FlaskForm.validate(self)
        if not rv:
            return False

        company = Company.query.filter_by(name=self.name.data, address=self.address.data).first()
        if company is not None:
            self.name.errors.append('Company already exists at that address')
            return False

        return True