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
This document assumes that you are familiar with Python and Django.
-
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://github.com/philomat/django-form-designer.git $ cd django-form-designer $ git submodule init $ git submodule update
-
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')), ... )
-
Add the form_designer admin URLs to your URL conf if you want to use CSV export. Add the following line to
urls.py
before the admin URLs:urlpatterns = patterns('', (r'^admin/form_designer/', include('form_designer.admin_urls')), ... (r'^admin/', include(admin.site.urls)), )
-
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'
- File upload fields should be implemented