def validate(func, *args, **kw): if tg_util.call_on_stack("validate", recursion_guard, 4): return func(*args, **kw) form = init_form(args and args[0] or kw["self"]) args, kw = tg_util.to_kw(func, args, kw) errors = {} if state_factory is not None: state = state_factory() else: state = None if form: value = kw.copy() try: kw.update(form.validate(value, state)) except Invalid, e: errors = e.unpack_errors() cherrypy.request.validation_exception = e cherrypy.request.validated_form = form
def validate(func, *args, **kw): # do not validate a second time if already validated if hasattr(request, 'validation_state'): return func(*args, **kw) form = init_form(args and args[0] or kw["self"]) args, kw = tg_util.to_kw(func, args, kw) errors = {} if state_factory is not None: state = state_factory() else: state = None if form: value = kw.copy() try: kw.update(form.validate(value, state)) except Invalid, e: errors = e.unpack_errors() request.validation_exception = e request.validated_form = form