【发布时间】:2016-02-12 17:52:28
【问题描述】:
我有一个包含价格小数字段的表单,如下所示:
from flask.ext.wtf import Form
import wtforms
from wtforms.validators import DataRequired
from decimal import ROUND_HALF_UP
class AddListingBase(Form):
title = wtforms.StringField(validators=[DataRequired()])
details = wtforms.TextAreaField(validators=[DataRequired()])
price = wtforms.DecimalField(places=2, rounding=ROUND_HALF_UP, validators=[DataRequired()])
当我提交表单时,十进制值被假定为四舍五入到小数点后 2 位,但这从未发生过。我总是得到指定的值(例如,99.853 是 99.853,而不是应该的 99.85)。
【问题讨论】:
-
我查看了github.com/wtforms/wtforms/blob/… 的代码,这些参数仅应用于值提供 用作起始值(_values 函数),而不是用于输入( _process_formdata 函数)。所以你必须推出自己的验证器。
-
@mueslo 就是答案,所以将其添加为一个!
标签: python wtforms flask-wtforms