Template tags

ModelView template tags

towel.templatetags.modelview_detail.model_details(instance, fields=None)

Returns a stream of verbose_name, value pairs for the specified model instance:

<table>
{% for verbose_name, value in object|model_details %}
    <tr>
        <th>{{ verbose_name }}</th>
        <td>{{ value }}</td>
    </tr>
{% endfor %}
</table>
towel.templatetags.modelview_list.model_row(instance, fields)

Shows a row in a modelview object list:

{% for object in object_list %}
    <tr>
        {% for verbose_name, field in object|model_row:"name,url" %}
            <td>{{ field }}</td>
        {% endfor %}
    </tr>
{% endfor %}

Batch form template tags

towel.templatetags.towel_batch_tags.batch_checkbox(form, id)

Checkbox which allows selecting objects for batch processing:

{% for object in object_list %}
    {% batch_checkbox batch_form object.id %}
    {{ object }} etc...
{% endfor %}

This tag returns an empty string if batch_form does not exist for some reason. This makes it easier to write templates when you don’t know if the batch form will be available or not (f.e. because of a permissions requirement).

Generally helpful form tags

towel.templatetags.towel_form_tags.dynamic_formset(parser, token)

Implements formsets where subforms can be added using the towel_add_subform javascript method:

{% dynamic_formset formset "activities" %}
    ... form code
{% enddynamic_formset %}
towel.templatetags.towel_form_tags.form_errors(parser, token)

Show all form and formset errors:

{% form_errors form formset1 formset2 %}

Silently ignores non-existant variables.

towel.templatetags.towel_form_tags.form_item(item, additional_classes=None)

Helper for easy displaying of form items:

{% for field in form %}
    {% form_item field %}
{% endfor %}
towel.templatetags.towel_form_tags.form_item_plain(item, additional_classes=None)

Helper for easy displaying of form items without any additional tags (table cells or paragraphs) or labels:

{% form_item_plain field %}
towel.templatetags.towel_form_tags.form_items(form)

Render all form items:

{% form_items form %}
towel.templatetags.towel_form_tags.form_warnings(parser, token)

Show all form and formset warnings:

{% form_warnings form formset1 formset2 %}

Silently ignores non-existant variables.

Template tags for pulling out the verbose_name(_plural)? from almost any object

towel.templatetags.verbose_name_tags.verbose_name(item)

Pass in anything and it tries hard to return its verbose_name:

{{ form|verbose_name }}
{{ object|verbose_name }}
{{ formset|verbose_name }}
{{ object_list|verbose_name }}
towel.templatetags.verbose_name_tags.verbose_name_plural(item)

Pass in anything and it tries hard to return its verbose_name_plural:

{{ form|verbose_name_plural }}
{{ object|verbose_name_plural }}
{{ formset|verbose_name_plural }}
{{ object_list|verbose_name_plural }}