Flask IntegerField小部件验证程序无法正常工作

时间:2017-06-27 21:12:22

标签: python flask flask-wtforms

我可能会遗漏一些明显的东西,但我无法让它正常工作。我想要的是“微调器”小部件停在最大(最小)值,不允许用户选择更高(更低)的值。我做错了什么?

观点:

<html>
    <head>
        <title>Widget Question</title>
    </head>

    <body>
        <form method=post action=''>
            {{ template_form.my_intfield.label }} {{ template_form.my_intfield }}
        </form>
    </body>
</html>

控制器:

from flask import Flask, render_template, request
from wtforms import Form, IntegerField, widgets, validators

app = Flask(__name__)
app.secret_key='some secret'

class InputForm(Form):
    # This is the problem line - I can spin past max or min.
    my_intfield = IntegerField(label='My integer field', widget=widgets.Input(input_type='number'), validators=[validators.InputRequired(), validators.NumberRange(min=0, max=100)], default=100)    

@app.route('/', methods=['GET', 'POST'])
def index():
    form=InputForm(request.form)
    return render_template('view.html', template_form=form)

if __name__ == '__main__':
    app.run(debug=True)

我没有收到错误,它只是无法正常工作;即,旋转器不会停在100,它继续前进。我希望它在顶端停在100,而不允许底端的负数。

1 个答案:

答案 0 :(得分:1)

WTForms验证在服务器端完成。您还需要添加JavaScript验证 - 例如Parsley JS