如何使用HiddenField强制WTForms中的整数数据?

Roy*_*lTS 3 python wtforms flask-wtforms

我有一个WTForm这样的课:

class MyForm(Form):
    field1 = HiddenField(default=0, validators=NumberRange(min=0, max=20)])
Run Code Online (Sandbox Code Playgroud)

将此标记视为由.呈现 WTForms

<input type='hidden' name='field1' value='5'></input>
Run Code Online (Sandbox Code Playgroud)

这不通过NumberRange验证.这是因为HiddenFields widget类将该value属性强制转换为字符串.如何WTForms生成此标记,以便我可以在后续执行数字验证POST

nsf*_*n55 14

推荐的技巧是使用an IntegerField并将小部件更改为aHiddenInput

class MyForm(Form):
    field1 = IntegerField(widget=HiddenInput())
Run Code Online (Sandbox Code Playgroud)

你也可以继承

class HiddenInteger(IntegerField):
    widget = HiddenInput()
Run Code Online (Sandbox Code Playgroud)