Extras¶
Bootstrap template¶
Formica provides a Bootstrap ready template. All you have to do is to call the formica/bootstrap/base_form.html template with {% form %} tag:
{% form "formica/bootstrap/base_form.html" %}
...
{% endform %}
You can use the following tags (and blocks).
Basic layout¶
You can render a basic form layout with {% fields %} with default block:
{% fields "field1 field2" %}
Horizontal layout¶
To renders all fields with labels floating on left side, you have to use {% fields %} with horizontal block name.
{% fields "field1 field2" "horizontal" %}
You can set {{ label_cols }} and {{ control_cols }} to set the grid classes for labels and controls.
With basic and horizontal style, you can also set {{ wrapper_class }} to add a class to .form-group HTML block.
Regrouped fields¶
To group all fields on a single line, use {{ fields }} with regrouped block name. You can set a {{ label }} variable to add a label.
{% fields "field1 field2" "regrouped" label="optional label" %}
Template filters¶
Formica provides template filters mostly borrowed from django-crispy-forms.
|is_input¶
Returns True if field’s widget is a <input> tag, except checkboxe, radio or file.
|is_textarea¶
Returns True if field’s widget is a textarea (forms.Textarea).
|is_select¶
Returns True if field’s widget is a select box.
|is_checkbox¶
Returns True if field’s widget is a checkbox (forms.CheckboxInput).
|is_password¶
Returns True if field’s widget is a password input (forms.PasswordInput).
|is_radioselect¶
Returns True if field’s widget is a radio select choice (forms.RadioSelect).
|is_checkboxselectmultiple¶
Returns True if field’s widget is a multiple checkbox select (forms.CheckboxSelectMultiple).
|is_file¶
Return True if field’s widget is a file input (forms.FileInput).
|any_field_error¶
This filter applies on a field list and returns True if any one of them has errors.
|any_field_required¶
This filter applies on a field list and returns True if any one of them is required.
Demonstration project¶
Formica provides a demonstration project, allowing you to see how it looks and how it works with various templates. Here’s how to run it.
First, clone the project (prefer a virtual environment):
git clone https://github.com/olivier-m/formica.git
Then install formica:
cd formica
pip install -e .
Run the demonstration project:
cd demo-project
python manage.py runserver
You’ll find all needed sources in demo-project directory.