2017-01-18 5 views
0

사용자가 방을 제출할 수있는 플라스크 응용 프로그램이 있습니다.파이썬 플라스크 WTForms FloatField 허용 1,0 및 1.0 쉼표와 점을 허용

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

입력이 올바른 경우 (점 포함)이 잘 작동, 예 ​​:이 내 WTForms에서 FloatField는 가격 필드는

1.00 

그러나 쉼표를 사용하는 경우 오류, 예를 트리거 : 내 아이디어가 잡으려고했다

enter image description here

1,00 
이 내 main.py 있지만 문제는 WTForms에서 기본 오류 메시지를 먼저 트리거하는 것입니다 :

,이 문자열에 있는지 확인하고 간단한 replace(",",".") 사용하고 다시 변환 떠 다니기.


타 측 질문, 내가 어떻게이 기본값을 변경하려면 어떻게해야합니까 Not a valid float value 메시지를 사용자 정의 메시지에?

감사합니다.

+0

컴퓨터의 로캘을 변경하면 어떻게됩니까? 스페인어 로케일로 설정하십시오. 이제는 쉼표로 사용할 수 있습니다 (그러나 기간에는 해당되지 않음). – victor

답변

1

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')) 

여기에서 오류 메시지를 변경할 수도 있습니다.