我是WTForms的新手。我想创建一个名为DollarField的新类型字段,它允许使用“$”和逗号。然后我会将它们剥离并保存值。
我做了这个删除“$”并删除逗号,但现在所有适用于DecimalField的正常验证(例如,如果用户键入“asda”时捕获案例)都不起作用。
class DollarField(DecimalField):
def process_formdata(self, valuelist):
if len(valuelist) == 1:
self.data = [valuelist[0].strip('$').replace(',', '')]
else:
self.data = []
答案 0 :(得分:1)
您的问题是,因为您覆盖process_formdata
,您将使用自己的代码替换默认处理代码(尝试将字符串转换为小数,因此如果不能,则会引发错误)。您需要确保process_formdata
的实现手动调用父{q}方法,以便其逻辑也运行,如此...
process_formdata