skillfed

django-formtools

A set of high-level abstractions for Django forms

django-formtools v2.7 3.9M downloads/30d#2,449 on PyPI885
Permissive license BSD Active released

What it is and what it does

django-formtools is a standalone package that provides form abstractions originally built into Django's core. It specializes in handling multi-step (wizard) forms and form previews—common patterns in web applications where users fill out forms across multiple pages or need to review their input before submission. The package depends only on Django itself and is designed to integrate seamlessly into Django projects by providing view classes and utilities that manage form state across HTTP requests.

The package is actively maintained by the Jazzband collective and supports modern Python versions (3.10 through 3.14) and recent Django releases (5.2 and 6.0). It has no known security vulnerabilities and carries a permissive BSD license, making it suitable for both open-source and commercial use.

Use it for:

  • Build multi-page registration or checkout flows where users complete forms across several steps
  • Implement form preview pages that let users review their input before final submission
  • Handle complex questionnaires or surveys that need to be broken into manageable sections
  • Manage form state and validation across multiple HTTP requests in a Django application

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

django-formtools provides high-level form abstractions for Django, including multi-step form handling and form preview functionality that was previously part of Django's core.

Yes. django-formtools is a stable, actively maintained package with no security issues, low install friction, and a permissive license. Install it if you need multi-step form handling or form preview functionality in a Django project—these are common patterns it handles well. The recent release and ongoing maintenance make it a reliable choice for modern Django applications.

Install

django-formtools on PyPI

pip

pip install django-formtools

uv

uv add django-formtools

poetry

poetry add django-formtools

Installing django-formtools

Before you install

Low install friction with a single Django dependency. Active maintenance with a recent release 36 days ago and ongoing commits; the project is hosted on Jazzband and has 885 repository stars.

License in practice

BSD license (permissive) means you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.

Quickstart

pip install django-formtools

from django_formtools.views import SessionWizardView
from django.forms import Form

class MyWizard(SessionWizardView):
    template_name = 'wizard.html'
    form_list = [Form1, Form2, Form3]

Requires Django 5.2 or 6.0 and Python 3.10 or later; must be added to Django's INSTALLED_APPS.

Verify before relying

  • Specific feature completeness compared to Django's current form handling capabilities
  • Performance characteristics for very large multi-step forms or high-concurrency scenarios

Package facts

License BSD (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — Django
Maintenance actively maintained — 36 days since the last release
Last repo commit
First released
Downloads 3,930,157/month — #2,449 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: django_formtools-2.7-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Internet :: WWW/HTTP

Tags

django multi-step formsdjango form previewdjango form wizarddjango formtoolsmulti-page form handling djangodjango form state management
django-formsmulti-step-formsform-wizard

More WWW/HTTP packages