Design contact forms, search forms etc from the Django admin, without writing any code. Integrates with Django CMS.
JavaScript Python CSS
Switch branches/tags
Nothing to show
Pull request Compare This branch is 87 commits ahead, 112 commits behind samluescher:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Django Form Designer

A Django app for building many kinds of forms visually, without any programming knowledge.


  • Design contact forms, search forms etc from the Django admin, without writing any code
  • Form data can be logged and CSV-exported, sent via e-mail, or forwarded to any web address
  • Integration with Django CMS: Add forms to any page
  • Use drag & drop to change the position of your form fields
  • Fully collapsible admin interface for better overview over your form
  • Implements many form fields included with Django (TextField, EmailField, DateField etc)
  • Validation rules as supplied by Django are fully configurable (maximum length, regular expression etc)
  • Customizable messages and labels
  • Supports POST and GET forms


This document assumes that you are familiar with Python and Django.

  1. Download and unzip the current release, or install using git as shown below (the latter two commands are necessary to pull submodule dependencies):

     $ git clone git://
     $ cd django-form-designer
     $ git submodule init
     $ git submodule update
  2. Make sure form_designer is on your PYTHONPATH.

  3. Make the directory form_designer/media/form_designer available under your MEDIA_ROOT.

  4. Add form_designer to your INSTALLED_APPS setting.

  5. Set up the database tables using

     $ syncdb
  6. Add the form_designer URLs to your URL conf. For instance, in order to make a form named example-form available under, add the following line to Note: If you are using the form_designer plugin for Django CMS, this step is not necessary:

     urlpatterns = patterns('',
         (r'^forms/', include('form_designer.urls')),
  7. Add the form_designer admin URLs to your URL conf if you want to use CSV export. Add the following line to before the admin URLs:

     urlpatterns = patterns('',
         (r'^admin/form_designer/', include('form_designer.admin_urls')),
         (r'^admin/', include(,

Optional requirements

  • form_designer supports django-notify for error messages and success notifications. If it is installed in your project, it will be used automatically, and you need to output the {{ notifications }} variable in your templates.

  • The form_designer admin interface requires jQuery and the jQuery UI Sortable plugin to make building forms a lot more user-friendly. The two Javascript files are bundled with form_designer. Optionally, if Django CMS is installed, the files bundled with that app will be used. If you want to use you own jquery.js instead because you're already including it anyway, define JQUERY_JS in your settings file. For instance:

      JQUERY_JS = 'jquery/jquery-latest.js'