【问题标题】:Form validator in web.py, help find the mistakeweb.py 中的表单验证器,帮助查找错误
【发布时间】:2012-05-18 11:19:40
【问题描述】:

我的验证器似乎有错误。即使我在表单中输入-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"

【问题讨论】:

  • 顺便说一句,如果您有表格,则不需要web.input()。只需在检查validates() 后使用self.myForm.d.minutes

标签: python forms validation web.py


【解决方案1】:

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)),
)

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多