Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python表单浮动字段允许1,0和1.0允许逗号和点_Python_Flask_Wtforms - Fatal编程技术网

Python表单浮动字段允许1,0和1.0允许逗号和点

Python表单浮动字段允许1,0和1.0允许逗号和点,python,flask,wtforms,Python,Flask,Wtforms,我有一个烧瓶应用程序,用户可以提交一个房间。在我的表格中有一个价格字段是浮动字段: preis = FloatField('Preis p.P.', validators=[Optional()]) 如果输入正确(带点),则工作正常,例如: 1.00 1,00 但如果使用逗号,则会触发错误,例如: 1.00 1,00 我的想法是在main.py中捕捉到这一点,但问题是来自WTForms的默认错误消息首先触发: 我尝试将浮点转换为字符串,检查,是否在此字符串中,并使用简单的替换(“,”

我有一个烧瓶应用程序,用户可以提交一个房间。在我的表格中有一个价格字段是浮动字段:

preis = FloatField('Preis p.P.', validators=[Optional()])
如果输入正确(带点),则工作正常,例如:

1.00
1,00
但如果使用逗号,则会触发错误,例如:

1.00
1,00

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

我尝试将浮点转换为字符串,检查
是否在此字符串中,并使用简单的
替换(“,”,“)
,然后转换回浮点


另一个问题是,如何将此默认
非有效浮点值的消息更改为自定义消息


谢谢

您可以将FloatField子类化,并将
replace
函数添加到其
process\u 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'))

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

更改计算机的区域设置时会发生什么情况?尝试将其设置为西班牙语区域设置。现在它可能适用于逗号(但不适用于句点)