1

バリデーターに間違いがあるようです。フォームに入力-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"
4

1 に答える 1

2

i.minutesは自動的に変換されずint、文字列は整数より大きいと比較されます:

>>> '-1' > 0
True

使用するint(i.munites)

ところで、フォーム全体のバリデータは、フォーム フィールドを相互に比較するために使用されます。たとえば、入力されたパスワードが一致するかどうかをチェックします。特定のフィールドが正しいかどうかを確認するには、1 フィールド バリデーターを使用します。

self.myForm = web.form.Form(
    web.form.Textbox('minutes',
        web.form.Validator("Minutes not correct", lambda x: int(x) > 0)),
)
于 2012-05-18T20:49:29.917 に答える