Validation NumberRange验证程序不适用于负数

Validation NumberRange验证程序不适用于负数,validation,flask,wtforms,Validation,Flask,Wtforms,我已经在python中创建了一个名为EntryForm的类,希望验证某人收入的输入是否大于0,我正在使用Flask wtf/wtforms进行验证。当我使用下面的代码时,InputRequired()可以按预期工作,但NumberRange不能。负数或非数字输入不会导致错误 class EntryForm(FlaskForm): income = IntegerField('Income', validators=[InputRequired(), NumberRange(min=0,

我已经在python中创建了一个名为EntryForm的类,希望验证某人收入的输入是否大于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')])
这是上课时间

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 %}
form=EntryForm()
如果表单已提交():
data=request.form
user_income=int(data.get('income'))
这是html部分

{{form.hidden_tag()}}
{{form.income.label}
{形式收入(规模=20)}
{form.income.errors%中的错误为%s}
{{error}}
{%endfor%}

您应该在提交时调用
验证
,而不是
是否已提交

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