NumberRange 验证器不适用于负数

NumberRange validator not working for negative numbers

我在 python 中创建了一个名为 EntryForm 的 class 并希望验证某人收入的输入是否为大于 0 的数字,并且我正在使用 Flask-wtf / wtforms 进行验证.当我使用下面的代码时,InputRequired() 按预期工作,但 NumberRange 没有。负数或非数字输入不会导致错误。

class EntryForm(FlaskForm):
    income = IntegerField('Income', validators=[InputRequired(), NumberRange(min=0, message='Must enter a number greater than 0')])

这里是调用class

form = EntryForm()
    if form.is_submitted():
        data = request.form
        user_income = int(data.get('income'))


This is the html portion
<form action="/" method="POST">
                <p>
                    {{form.hidden_tag() }}
                    {{form.income.label}}
                    {{form.income(size=20)}}
                    {% for error in form.income.errors %}
                        {{error}}
                    {% endfor %}

您应该调用 validate_on_submit 而不是 is_submitted

form = EntryForm()
if form.validate_on_submit():
    data = request.form
    user_income = int(data.get('income'))
    ...
    return 
return render('your_template_name.html', form=form)