2014-09-12 3 views
0

과학 표기법 (예 : 9e-08)을 받아야하는 forms.Form 클래스에 FloatField가 있습니다. Django 1.6.x에서이 필드는 유효하지 않으며 "유효한 숫자를 입력하십시오."를 반환합니다. Django 1.5.x에서는 필드가 예외를 발생시키지 않으며 폼이 유효성을 검사합니다. 문제Django 1.6 과학 표기법 FloatField "유효한 숫자를 입력하십시오"

필드 : 내 필드에 예외를 발생하는 장고 1.6.x 이상인 경우 원인이 무엇인지에

vapor_pressure = forms.FloatField(
     label='Vapor Pressure', 
     initial=9e-8 
) 

어떤 힌트?

나는 is_valid() 결과를 기록 할 내 폼 클래스의 is_valid() 메소드를 오버라이드 (override) 한

, 그리고 장고 예외 제기 곳이되지 않습니다 :

def is_valid(self): 
    #Run validation 
    valid = super(ModelInp, self).is_valid() 
    print valid 
    if not valid: 
     print "MODEL NOT VALID" 
     return True 
    else: 
     print "MODEL VALID" 
     return True 
+0

추적을 게시 할 수 있습니까? –

답변

1

내 생각 엔 당신이보고있는 것입니다을 Django 1.6이 HTML5 input types을 양식에 추가했기 때문입니다. 생성 된 양식 필드에 type="number"을 확인하십시오. 따라서 과학 표기법을 인식하지 못하기 때문에 값을 확인하고 거부하는 브라우저입니다.

제 생각에 맞으면 단순한 해결책은 양식을 사용자 정의하고 해당 필드의 change the widget을 보통 TextInput으로 바꾸는 것입니다. 또 다른 가능한 옵션은 서식 파일의 양식에 novalidate 특성을 추가하는 것입니다.

자세한 내용은 this thread on django-developers을 참조하십시오.

+0

이 문제는 브라우저/HTML5 문제인 것으로 보입니다. 장고 문제는 아닙니다. {button formnovalidate = "formnovalidate"class = "input_button"> 제출 – Flash

+0

또한 jQuery 유효성 검사 플러그인은 HTML5 입력 유형을 방해하여 과학 표기법을 허용하지 않습니다. 제출 된 – Flash

관련 문제