Rom*_*man 3 python flask wtforms
我有一个烧瓶应用程序,用户可以在其中提交房间。在我的WTForms中有一个价格字段,它是FloatField:
preis = FloatField('Preis p.P.', validators=[Optional()])
Run Code Online (Sandbox Code Playgroud)
如果输入正确(带点),则可以正常工作,例如:
1.00
Run Code Online (Sandbox Code Playgroud)
但是,如果使用逗号,则会触发错误,例如:
1,00
Run Code Online (Sandbox Code Playgroud)
我的想法是在main.py中捕获此错误,但问题是WTForms的默认错误消息首先触发:
我试图将浮点数转换为字符串,检查是否,在此字符串中,并使用一个简单的值replace(",","."),然后再转换回浮点数。
另一个问题是,如何将此默认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'))
Run Code Online (Sandbox Code Playgroud)
在这里您还可以更改错误消息。