Rob*_*bb1 8 python flask flask-wtforms
有没有一种方法可以在WTFforms中实现验证,强制要求至少有一个字段是必需的?
例如,我有两个StringFields,我想确保用户在单击“提交”之前至少在其中一个字段中写入一些内容。
field1 = StringField('Field 1', validators=[???])
field2 = StringField('Field 2', validators=[???])
Run Code Online (Sandbox Code Playgroud)
我应该写什么来代替????InputRequired()在这种情况下,无法完成这项工作,因为我需要将其分配给其中一个字段或同时分配给两个字段。我怎样才能做到这一点?
重写表单的validate方法。例如:
class CustomForm(FlaskForm):
field1 = StringField('Field 1')
field2 = StringField('Field 2')
def validate(self, extra_validators=None):
if super().validate(extra_validators):
# your logic here e.g.
if not (self.field1.data or self.field2.data):
self.field1.errors.append('At least one field must have a value')
return False
else:
return True
return False
Run Code Online (Sandbox Code Playgroud)
请注意,您仍然可以向字段添加单独的验证器,例如输入长度。
| 归档时间: |
|
| 查看次数: |
1558 次 |
| 最近记录: |