【发布时间】:2015-12-22 19:08:57
【问题描述】:
我目前的 WTForms Number 验证器代码如下:
class ScoreForm(Form):
score = FloatField(validators=[DataRequired(), NumberRange(0,100)])
submit = SubmitField()
我希望将分数指定在 0 到 100 之间(包括两者和允许的小数)。
上面的代码有两个问题:
-
它不允许我输入 0 作为值。这样做会吐出内置的错误消息
[This field is required.] -
如果我在字段中输入一些字符串,我会收到与上面相同的错误消息,这不是正确的消息。
如何纠正这两个问题?
【问题讨论】:
-
我自己没有尝试过,但最近here 读到,在大多数情况下,DecimalField 比 FloatField 更可取,除了一些需要 IEEE 的罕见情况。试试这个用于 DecimalField 的 NumberRange 验证器,也许这对你有用
-
我正在使用 pyMongo,因为它没有对 Decimal 的原生支持,如果我使用 DecimalField,它会带来很多不必要的问题。还是谢谢
标签: python wtforms flask-wtforms