gpt4 book ai didi

Python Flask WTForms FloatField 允许 1,0 和 1.0 允许逗号和点

转载 作者:太空宇宙 更新时间:2023-11-03 14:08:07 29 4
gpt4 key购买 nike

我有一个 flask 应用程序,用户可以在其中提交房间。在我的 WTForms 中有一个价格字段,它是一个 FloatField:

preis = FloatField('Preis p.P.', validators=[Optional()])

如果输入正确(带点),则可以正常工作,示例:

1.00

但是如果使用逗号会触发错误,例如:

1,00

enter image description here

我的想法是在我的 main.py 中捕获这个,但问题是来自 WTForms 的默认错误消息首先触发:

我尝试将 float 转换为字符串,检查 , 是否在此字符串中并使用简单的 replace(",",".") 然后转换回到 float 状态。


另一个问题,如何将这个默认的 Not a valid float value 消息更改为自定义消息?

谢谢!

最佳答案

您可以继承 FloatField 并将 replace 函数添加到它的 process_formdata() 函数。

class MyFloatField(FloatField):
def process_formdata(self, valuelist):
if valuelist:
try:
self.data = float(valuelist[0].replace(',', '.'))
except ValueError:
self.data = None
raise ValueError(self.gettext('Not a valid float value'))

您还可以在此处更改错误消息。

关于Python Flask WTForms FloatField 允许 1,0 和 1.0 允许逗号和点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41718473/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com