Python初学者。在金字塔 1.5.1 上。在这一点上,我只是想让我的应用程序正常工作。
我基本上是对我的表单进行硬编码,只是尝试使用 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,
}
邮政:
{'reason': 'Not a form request'}
{'_items': [('_csrf', '208f4c5344cf87fbbe2f79afde7d879b4e3ab7f5'),
('email', 'jeremy@test.com'),
('password', 'test'),
('submit', 'Log In')]}