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.
-
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
-
Make sure
form_designer
is on yourPYTHONPATH
. -
Make the directory
form_designer/media/form_designer
available under yourMEDIA_ROOT
. -
Set up the database tables using
$ manage.py syncdb
-
Add
form_designer
to yourINSTALLED_APPS
setting.INSTALLED_APPS = ( ... 'form_designer', )
-
Add the form_designer URLs to your URL conf. For instance, in order to make a form named
example-form
available underhttp://domain.com/forms/example-form
, add the following line tourls.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