Skip to main content

Nest Django formsets for multi-level hierarchical editing

Project description

Formsets are a Django abstraction that make it easier to manage multiple instances of a single Form on a page. In 2009 I wrote a blog post about using nesting formsets using Django 1.1. This is a generic implementation of the technique described there, targeting Django 1.6 and later. A follow-up blog post provides additional context.

Note that I do not advocate the use of nested Formsets: in every case I’ve considered them, they’ve led to usability issues and overly complex view code. This repository was created as an exercise in test driven development and abstraction.

Your mileage may vary.


You can install Django Nested Formsets using your favorite package management tool. For example:

$ pip install django-nested-formset

You can also install the latest development version:

$ pip install git+

After installing the package, you can use the nestedformset_factory function to create your formset class.


If you’d like to work on the source, I suggest cloning the repository and creating a virtualenv.

$ cd nested-formset
$ virtualenv .
$ source bin/activate
$ python develop

The last line will install the installation and test dependencies.

To run the unit test suite, run the following:

$ python test

See Also


This package is released under a BSD style license. See LICENSE for details.



Release date: 7 March 2015

  • Dropped Django 1.5.x support; it’s no longer receiving security updates or maintenance.

  • Updated accepted factory kwargs for Django 1.7 and later

  • Fixed builds against Django tip.


Release date: 28 September 2014

  • Test against Django 1.7-final

  • has_changed now takes into account all nested forms.


Release date: 20 May 2014

  • Support for passing files to bound nested formsets

  • The media property now rolls up all nested media

  • Compatibility with Django 1.7.


Release date: 6 March 2014

  • Bump minor version number to get PyPI to index the development version link.


Release date: 6 March 2014

  • Initial release on PyPI

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-nested-formset-0.1.4.tar.gz (9.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page