/django-form-designer

Design contact forms, search forms etc from the Django admin, without writing any code. Integrates with Django CMS.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Django Form Designer

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

Features:

  • 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

Installation

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):

     $ git clone git://github.com/philomat/django-form-designer.git
     $ cd django-form-designer
    
  2. Make sure form_designer is on your PYTHONPATH.

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

  4. Set up the database tables using

    $ manage.py syncdb

  5. Add form_designer to your INSTALLED_APPS setting.

     INSTALLED_APPS = (
         ...
         'form_designer',
     )
    
  6. Add the form_designer URLs to your URL conf. For instance, in order to make a form named example-form available under http://domain.com/forms/example-form, add the following line to urls.py. Note: If you are using the form_designer plugin for Django CMS, step 5 is not necessary:

     urlpatterns = patterns('',
         (r'^forms/', include('form_designer.urls')),
         ...
     )
    

Optional requirements

  • 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_URL = 'jquery/jquery-latest.js'
    

Missing features

  • File upload fields should be implemented

Dependencies

django-picklefield