Contents:¶
Django zenforms¶
I definitely going mad about forms in Django. They keep all layout buisness in python code.
Dragan Babić make a simple yet wonderful form css+jquery framework, called uniforms. I liked it a lot. In this app I tried to save all original Dragan’s work and adapt to it.
Since I met great app, django-crispy-forms (ex. django-uni-forms), I promised to myself to do something like that but templates. And I did.
Quickstart:¶
Django way:
<form action="/contact/" method="post">
{{ form.non_field_errors }}
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label }} {{ field }}
{% if field.help_text %}
<p class="formHint">{{ field.help_text }}</p>
{% emdif %}
</div>
{% endfor %}
{% csrf_token %}
</form>
Zenforms way:
{% izenform form %}
or:
<form action="." method="post">
{% izenform form1 options no_form_tag=1 %}
{% izenform form2 options no_form_tag=1 %}
<input type="submit" />
</form>
Regroup fields? as you wish:
{% zenform form %}
{% fieldset 'username' title 'User data' %}
{% multifield 'phone1' 'phone2' as phones label 'Phones' %}
{% fieldset 'first_name' 'last_name' phones %}
{% fieldset unused_fields title 'Rest stuff' %} <!-- you can foget something, zenforms can take care about it -->
{% endzenform %}
Moreover, you can include read-only values from Django models:
{% readonly admin 'username' 'last_name' label 'Information' %}
See full documentation.
Installation¶
Istall package:
pip install django-zenforms
Install 'zenforms'
in INSTALLED_APPS
.
And put static files on page:
<link rel="stylesheet" href="{{ STATIC_URL }}zenforms/css/uni-form.css" type="text/css" />
<link rel="stylesheet" href="{{ STATIC_URL }}zenforms/css/default.uni-form.css" type="text/css" />
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}zenforms/js/uni-form.jquery.min.js"></script>