Form API reference

class morf.form.Form(raw=None, bind=None, **kwargs)

The base class for forms

add_field(name, field, after=None, before=None)

Add a field to the form.

Parameters
  • name – The fieldname to use

  • field – A field object

bind_input(raw, **kwargs)

Bind the raw submitted value to the field

Field.extract_raw can be used to extract the raw value in the correct format for this method.

bind_object(ob=None, *args, **kwargs)

Bind form values to attributes found in ob

Multiple objects may be specified as additional positional args. In this case properties will be looked up on all objects, with values from later objects overriding earlier listed ones.

Parameters
  • ob – The object to bind to

  • *args – Additional objects to bind to. Later listed items take precendence over earlier ones

  • **kwargs – Additional keyword arguments to bind to. Takes precedence over all previous arguments.

is_considered_empty(value)

Return true if the given value is considered empty, triggering the field’s default value to be used instead.

render_with

alias of morf.render.FormRenderer

update_object(ob, exclude=frozenset({}))

Update object ob with attributes from the submitted data.

Parameters
  • ob – the object to update

  • exclude – attributes to skip when updating

validate(field, validator, message=None)

Apply any required validation rules to value and raise ValidationError if any condition is not met.

morf.form.cleans(*fieldnames, **kwargs)

Register a cleaner function.

Parameters
  • fieldnames – list of fieldnames to clean. If empty, it will be considered a form-scope validator and only run after all other validation has run and passed.

  • run_always – Applies to form-scope validation only. If True the validation function will be run even when previous validators have failed.

  • before – Run this validator before the given function

morf.form.validates(*fieldnames, **kwargs)

Register a validator function.

Parameters
  • fieldnames – list of fieldnames to validate. If empty, it will be considered a form-scope validator and only run after all other validation has run and passed.

  • run_always – Applies to form-scope validation only. If True the validation function will be run even when previous validators have failed.

  • before – Run this validator before the given function