gpt4 book ai didi

python - 如何同时验证多个 wtform 字段以满足条件

转载 作者:太空宇宙 更新时间:2023-11-03 20:10:33 24 4
gpt4 key购买 nike

我有一个包含几个字段的表单。保存表单的类看起来像

class TestForm(Form):
some_stuff_1 = IntegerField('Cool Bucket', description="Cool bucket",default=0,validators[validators.Optional(),validators.NumberRange(0, 100)])
some_stuff_2 = IntegerField('Boring Bucket', description="Boring bucket",default=0,validators[validators.Optional(),validators.NumberRange(0, 100)])
some_stuff_3 = IntegerField('Funny Bucket', description="Funny bucket",default=0,validators[validators.Optional(),validators.NumberRange(0, 100)])
some_stuff_4 = IntegerField('Amazing Bucket', description="Amazing bucket",default=0,validators[validators.Optional(),validators.NumberRange(0, 100)])

以上效果很好。但现在我有一个额外的条件,我想验证用户不应为所有 4 个字段输入全部 0。所以基本上我在这里寻找一个客户验证,如果用户在所有四个字段中输入 0,它应该显示一条消息。我已经研究过 Flask wtforms 自定义验证,但它一次只适用于一个字段,在这里我尝试将验证应用于几个字段。

有人可以指导我如何做到这一点吗?

最佳答案

诀窍是连接到验证 Hook 并编写您自己的测试。

class TestForm(FlaskForm):
val1 = IntegerField('Cool Bucket', description="Cool bucket",default=0,validators[validators.Optional(),validators.NumberRange(0, 100)])
val2 = IntegerField('Cool Bucket', description="Cool bucket",default=0,validators[validators.Optional(),validators.NumberRange(0, 100)])

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

test = (self.val1.data == 0) and (self.val2.data == 0)
if test:
self.val1.errors.append('Val1 and 2 cannot be 0')
return False

return True

关于python - 如何同时验证多个 wtform 字段以满足条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58741604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com