2011-03-31 2 views
4

필드가 비어 있으면 유효성 검사 체인이 중지되므로 WTForms validators.optional()에 문제가 있습니다 (WTForms docs). 즉, 유효성 검사가 유형 오류가 발생할 수있는 사용자 정의 함수로 계속되지 않음을 의미합니다.WTForms validators.optional : 빈 필드의 유효성 검사를 계속 하시겠습니까?

코드 예제 :

class MyForm(form): 
    myfield = TextField('My Field', [validators.Optional()]) 

    def validate_myfield(form, field): 
     field.data = unicode(field.data) 

은 옵션 내용이 어쩌면 custom validators을 사용하여 비어있는 경우에도 검증 체인을 계속 할 수있는 방법 또는 해결 방법이 있습니까?

잘못된 방식으로 문제에 접근하고 있다면 올바른 방향으로의 힌트가 도움이 될 것입니다!

+1

validator 목록에 optional 전에 custom validator를 둘 수없는 이유가 있습니까? (유효성 검사기는 순서대로 평가됩니다.) – dagoof

+0

귀하의 의견은 도움을 드릴 수 있도록 답변 해드립니다. – lecodesportif

+1

관심 분야에서 필드가 비어 있으면 유효성 검사를 계속해야하는 이유는 무엇입니까? 일반적으로 빈 값은 두 가지 방법으로 만 반응합니다. 오류 (선택 사항 없음)이거나 오류 (선택 사항)가 아니며 일정한 방식으로 처리합니다 (값은 항상 같기 때문에). 타입 에러가 발생하면, 실제로 거기에 속하지 않는 검사기에서 뭔가를하려고합니까? WTForms에 익숙하지 않지만 사용자 지정 구문 분석 요구 사항도 처리 할 수있는 사용자 지정 필드를 만들 수 있습니다. –

답변

4

유효성 검사기가 나열된 순서 만 바꿀 수 있습니다. 사용자 정의 유효성 검사기가 선택적 유효성 검사기 앞에 놓이는 경우, 순서대로 평가 될 때 원하는 효과를 제공해야합니다.

관련 문제