パイソン初心者。ピラミッド 1.5.1 について。現時点では、アプリを機能的に動作させようとしています。
私は基本的にフォームをハードコーディングしており、検証に formencode を使用しようとしています。
スキーマを定義し、バリデータをインスタンス化し、送信されたフォームを検証しようとしています。私はこれにかなりの時間を費やしてきましたが、プロジェクトの Web サイトを含め、Web 上のどこにも例を見つけることができないようです。
これが私が持っているものです。私は愚かで単純なものが欠けていると確信しています。検証機能がないように見えますが、ドキュメントのどこにも、検証を行うために呼び出す必要があるものを見つけることができません。
エラー:
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')]}