Tho*_*son 5 validation wtforms flask-wtforms
基于两个或多个条目验证 WTform 的最佳方法是什么?即在下面的表格中,我想验证数据库中不存在具有提供的名称和地址的公司。
class CompanyForm(FlaskForm):
name=StringField('Company Name', validators=[DataRequired()])
address=StringField('Street Address', validators=[DataRequired()])
Run Code Online (Sandbox Code Playgroud)
像这样的东西...
def validate_name(self, name, address):
company = Company.query.filter_by(name=name.data, address=address.data).first()
if company is None:
raise ValidationError('This company already exists in our database.')
Run Code Online (Sandbox Code Playgroud)
我通读了关于 SO 的文档和类似的问题,但我仍然无法弄清楚。
尝试这样的事情..(此处是片段的修改版本)
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
Run Code Online (Sandbox Code Playgroud)