私はかなり単純なweb2pyフォームを持っており、そのフィールドにIS_FLOAT_IN_RANGE(...)のようないくつかのバリデーターがあります。検証に合格しないフィールドがあるときにフォームを送信しようとすると、フォームは最初の検証に失敗しますが、エラーがあったことは報告されません。その後、同じフォームを再送信すると、検証はもう一度失敗します。
さらに悪いことに、有効な情報を送信すると、同じフォームを2回送信しないと送信されません。ビューは単純です{{=form}}
コントローラは次のようになります。
@auth.requires_login()
def addpipelines():
form = FORM(INPUT(_name="type", _value="insert", _type="hidden"),
INPUT(_name="project", _value="Project", requires=IS_NOT_EMPTY()),
INPUT(_name="value", _value="Value", requires=IS_FLOAT_IN_RANGE(-1e100, 1e100)),
BR(), BR(),
INPUT(_type="submit", _value="Add"),
_method="POST")
if request.post_vars.type == "insert" and form.process().accepted:
request.post_vars["blub"] = "blargh"
return dict(form=form)
`` `