2015-01-20 2 views
5

양식 입력을 표시하고 유효성을 검사하기 위해 WTForms을 사용하고 있습니다. 소수점 구분 기호로 도트가있는 값을 삽입 할 때 올바르게 작동하는 금액 입력에 DecimalField을 사용합니다. 이 웹 사이트는 유럽 대륙에서 사용되기 때문에, 은 소수 구분 기호로 쉼표를 허용하려고합니다. 즉, "2.5"와 "2,5"모두 "2와 1/2"을 의미하는 값이되어야 함을 의미합니다.WTForms로 소수점 구분 기호로 도트와 쉼표를 모두 사용하는 방법은 무엇입니까?

값을 쉼표로 입력하면 'Not a valid decimal value'이라는 오류가 발생합니다. 어떻게 WTForms 소수 구분 기호로 점 및 쉼표를 모두 받아 들일 수 있습니까?


나는 로캘 기반 숫자 서식을 사용하기 위해 바벨을 사용할 수 있지만 그럴 필요는 없다는 것을 알고 있습니다. 필자는 분리 기호 값으로 도트와 쉼표를 모두 받아들이고 싶습니다. 데이터가 처리되기 전에

답변

6

DecimalField 서브 클래스 및 마침표와 쉼표를 대체 할 수

class FlexibleDecimalField(fields.DecimalField): 

    def process_formdata(self, valuelist): 
     if valuelist: 
      valuelist[0] = valuelist[0].replace(",", ".") 
     return super(FlexibleDecimalField, self).process_formdata(valuelist) 
관련 문제