### Navigation

- index
- modules |
- next |
- previous |
- TurboGears 2.1.5 documentation »
- Search:
- Extended Table of Contents »
- The Gears in Detail »
- Modules »

# `pylons.decorators` – Decorators

Pylons Decorators

Common decorators intended for use in controllers. Additional decorators for use with controllers are in the `cache`, `rest` and `secure` modules.

## Module Contents

`pylons.decorators.``jsonify`(func)

  Action decorator that formats output for JSON

  Given a function that will return content, this decorator will turn the result into JSON, with a content-type of ‘application/json’ and output it.

`pylons.decorators.``validate`(schema=None, validators=None, form=None, variable_decode=False, dict_char='.', list_char='-', post_only=True, state=None, on_get=False, **htmlfill_kwargs)

  Validate input either for a FormEncode schema, or individual validators

  Given a form schema or dict of validators, validate will attempt to validate the schema or validator list.

  If validation was successful, the valid result dict will be saved as `self.form_result`. Otherwise, the action will be re-run as if it was a GET, and the output will be filled by FormEncode’s htmlfill to fill in the form field errors.

  `schema`
    Refers to a FormEncode Schema object to use during validation.
  `form`
    Method used to display the form, which will be used to get the HTML representation of the form for error filling.
  `variable_decode`
    Boolean to indicate whether FormEncode’s variable decode function should be run on the form input before validation.
  `dict_char`
    Passed through to FormEncode. Toggles the form field naming scheme used to determine what is used to represent a dict. This option is only applicable when used with variable_decode=True.
  `list_char`
    Passed through to FormEncode. Toggles the form field naming scheme used to determine what is used to represent a list. This option is only applicable when used with variable_decode=True.
  `post_only`

    Boolean that indicates whether or not GET (query) variables should be included during validation.

    Warning

    `post_only` applies to where the arguments to be validated come from. It does not restrict the form to only working with post, merely only checking POST vars.

  `state`
    Passed through to FormEncode for use in validators that utilize a state object.
  `on_get`
    Whether to validate on GET requests. By default only POST requests are validated.

  Example:

      class SomeController(BaseController):

          def create(self, id):
              return render('/myform.mako')

          @validate(schema=model.forms.myshema(), form='create')
          def update(self, id):
              # Do something with self.form_result
              pass