skip to navigation
skip to content

wadofstuff-django-forms 1.1.0

Extended Django forms.

Wad of Stuff Django Forms
=========================

A set of utility functions and classes to extend the functionality of Django
forms.

Requirements
============

Django 1.0 or newer.

Functions
=========

wadofstuff.django.forms.security_hash(request, form, exclude=None, *args)
-------------------------------------------------------------------------

Calculates a security hash for the given Form/FormSet instance.

This creates a list of the form field names/values in a deterministic
order, pickles the result with the SECRET_KEY setting, then takes an md5
hash of that.

Allows a list of form fields to be excluded from the hash calculation. This
is useful form fields that may have their values set programmatically.

Classes
=======

wadofstuff.django.forms.BoundFormWizard
---------------------------------------

A subclass of Django's FormWizard that adds the following functionality:

- Renders `previous_fields` as a list of bound form fields in the template
context rather than as raw html.
- Can handle FormSets.

The usage of this class is identical to that documented at
http://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/ with
the exception that when rendering `previous_fields` you should change your
wizard step templates from:

<input type="hidden" name="{{ step_field }}" value="{{ step0 }}"/>
{{ previous_fields|safe }}

to:

<input type="hidden" name="{{ step_field }}" value="{{ step0 }}"/>
{% for f in previous_fields %}{{ f.as_hidden }}{% endfor %}

wadofstuff.django.forms.RequireOneFormSet
-----------------------------------------

A subclass of Django's BaseInlineFormSet that requires at least one form in
the formset to be completed.

Use this class as the `formset` argument to `inlineformset_factory`.

When the formset is validated and it does not contain one or more entries, then
a `ValidationError` is raised which gets put into `formset.non_form_errors`. You
will need to check this in your templates if you wish to display the error
message to your users.

What's new
==========

Version 1.1.0:

- Added RequireOneFormSet inline formset class.
- Modified to allow classes and functions to be imported from wadofstuff.django.forms.

Version 1.0.0:

- First public release.