Meta Form Fields

FormField

FormField is a django field that allows you to embed a form as a field. To work properly, the form must inherit from MetaForm (or use the MetaFormMixin).

Example usage:

from django import forms
from spec_widget import FormField, MetaForm

class PersonForm(forms.Form):
    first_name = forms.CharField()
    last_name = forms.CharField()

class PeopleForm(MetaForm):
    person_one = FormField(form=PersonForm)
    person_two = FormField(form=PersonForm)

form = PeopleForm(data=data)
if form.is_valid():
    print form.cleaned_data

ListFormField

ListFormField works like FormField but instead allows for an array of objects. This works by producing a formset and using that as the form.

Example usage:

from django import forms
from spec_widget import ListFormField, MetaForm

class PersonForm(forms.Form):
    first_name = forms.CharField()
    last_name = forms.CharField()

class GroupForm(MetaForm):
    name = forms.CharField()
    people = ListFormField(form=PersonForm)

form = PeopleForm(data=data)
if form.is_valid():
    print form.cleaned_data