0
파이썬 초급. 피라미드 1.5.1. 이 시점에서 필자는 앱을 기능적으로 작동 시키려고합니다.formencode가있는 스키마로 제출 된 양식의 유효성을 어떻게 검사합니까?
기본적으로 양식을 하드 코딩하고 유효성 검사에 formencode를 사용하려고합니다.
나는 스키마를 정의하고 유효성 검사기를 인스턴스화하며 제출 된 양식의 유효성을 검사하려고합니다. 나는 꽤 오랫동안 있었고 프로젝트 웹 사이트를 포함하여 웹 어디에서나 예제를 찾을 수없는 것 같습니다.
다음은 내가 가진 것입니다. 나는 어리 석고 단순한 무언가를 놓치고 있다고 확신한다. 유효성 검사 기능이없는 것으로 보이지만 유효성 검사를 수행하기 위해 호출해야하는 문서의 어느 부분도 찾을 수 없습니다.
오류 :
AttributeError: 'SimpleFormValidator' object has no attribute 'validate'
코드 :
class RegistrationSchema(formencode.Schema):
allow_extra_fields = True
password = formencode.validators.PlainText(not_empty=True)
email = formencode.validators.Email(resolve_domain=False)
password = formencode.validators.String(not_empty=True)
@view_config(permission='view', route_name='register',
renderer='templates/user_add.pt')
def user_add(request):
pprint (vars(request.POST))
formvalidator = SimpleFormValidator(RegistrationSchema)
if 'form.submitted' in request.POST and formvalidator.validate():
session = DBSession()
email = form.data['email']
user = User(
password=form.data['password'],
email=form.data['email']
)
session.add(user)
headers = remember(request, email)
redirect_url = request.route_url('main')
return HTTPFound(location=redirect_url, headers=headers)
login_form = login_form_view(request)
logged_in = authenticated_userid(request)
return {
'logged_in': logged_in,
'login_form': login_form,
}
POST :
{'reason': 'Not a form request'}
{'_items': [('_csrf', '208f4c5344cf87fbbe2f79afde7d879b4e3ab7f5'),
('email', '[email protected]'),
('password', 'test'),
('submit', 'Log In')]}