我的验证器似乎有误。即使我在表单中输入-1
,我仍然会返回我的值,而不是blaat
。有人看到我的错误吗?
class test:
def __init__(self):
self.render = web.template.render('templates/')
self.myForm = web.form.Form(
web.form.Textbox('minutes', id='minutes'),
validators = [form.Validator("Minutes not correct",
lambda i: i.minutes > 0)]
)
def GET(self):
return self.render.addLog(self.myForm)
def POST(self):
webinput = web.input()
if self.myForm.validates():
return webinput.date1+webinput.minutes
else:
return "blaat"
答案 0 :(得分:2)
i.minutes
不会自动转换为int
,字符串的比较大于整数:
>>> '-1' > 0
True
使用int(i.munites)
顺便说一下,表格范围的验证器用于比较彼此之间的表单字段,例如检查输入的密码是否匹配。要检查任何给定字段是否正确,请使用单字段验证器:
self.myForm = web.form.Form(
web.form.Textbox('minutes',
web.form.Validator("Minutes not correct", lambda x: int(x) > 0)),
)