2016-11-15 10 views
0

나는 기존의 (WIP) 피라미드 프로젝트를 가지고 있으며, 단순한 형태가 모두 손으로 수행됩니다. 사용자 요구 사항이 꾸준히 복잡 해짐에 따라 변형 양식을 통합하여 자체 유지/프로그래밍 작업을 단순화하고자했습니다.기존 페이지 (mako 템플릿) 유효성 검사기에 변형 폼을 추가하지 않았습니까?

필자의 초기 테스트는 특정 날짜가 양식의 다른 날짜보다 먼저 나오게하는 것을 목적으로하는 인터 필드 양식 [1]을 시도하는 것이 었습니다. 그때 내 마코 템플릿 양식을 전달하고 전화

class Schema(colander.MappingSchema): 
    startdate = colander.SchemaNode(colander.Date()) 
    enddate = colander.SchemaNode(colander.Date()) 
def validator(form, value): 
    if value['enddate'] - value['startdate'] < 0: 
     exc = colander.Invalid(form, 'Start date must precede End date') 
     exc['enddate'] = 'Must be after %s' % value['startdate'] 
     raise exc 

schema = Schema(validator=validator) 
form = deform.Form(schema, buttons=('submit',)) 

: - - 다음은 스키마 및 검증에 대한 간단한 정의의

${form.render() | n} 

이 양식을 제대로 렌더링은, 내 날짜 선택기 (작동 물론, 난 올바른 CSS와 자바 스크립트를 로딩과 엉망으로했다). 그러나 제출을 클릭해도 유효성 검사 (기본 '값을 입력하지 않았습니다')가 아니라 바로 내 view_config로 돌아갑니다.

무엇이 누락 될 수 있습니까?

[1] - http://deformdemo.repoze.org/interfield/

답변

0

그것은으로 변형이 자동으로 유효성 검사를 처리하지 않습니다 밝혀, 나는 실제로 확인 전화를 다음과 같이 가지고있다 -에 대한 README를 변형 참조하십시오

try: 
    appstruct = form.validate(request.POST.items()) 
except deform.ValidationFailure as e: 
    return {'form': e.render()} 
+0

을 예제 변형 양식 작성 방법 https://h11.readthedocs.io/en/latest/ –

+0

잘못된 링크를 게시 했습니까? http://docs.pylonsproject.org/projects/deform/en/latest/index.html이 내가 사용하고있는 것이지만 유효성 검사 부분을 놓쳤습니다. –