kra*_*r65 5 python decimal wtforms
我正在使用WTForms来显示和验证表单输入.我使用a DecimalField
作为金额输入,当插入带点作为小数分隔符的值时,它可以正常工作.由于这个网站将在欧洲大陆使用,我也想让逗号作为小数分隔符.这意味着,这两个 "2.5"和"2,5"应导致的值,意思是"两半".
当我用逗号输入值时,我收到错误说'Not a valid decimal value'
.如何使用WTForms接受点和逗号作为十进制分隔符?
我知道我可以使用Babel来使用基于区域设置的数字格式,但我不希望这样.我特别想接受点和逗号作为分隔符值.
DecimalField
在处理数据之前,您可以使用句点对逗号进行子类化和替换:
class FlexibleDecimalField(fields.DecimalField):
def process_formdata(self, valuelist):
if valuelist:
valuelist[0] = valuelist[0].replace(",", ".")
return super(FlexibleDecimalField, self).process_formdata(valuelist)
Run Code Online (Sandbox Code Playgroud)