polymorphic_formset_tags¶
Added in version 1.1.
To render formsets in the frontend, the polymorphic_tags provides extra
filters to implement HTML rendering of polymorphic formsets.
The following filters are provided;
{{ formset|as_script_options }}render thedata-optionsfor a JavaScript formset library.{{ formset|include_empty_form }}provide the placeholder form for an add button.{{ form|as_form_type }}return the model name that the form instance uses.{{ model|as_model_name }}performs the same, for a model class or instance.
{% load i18n polymorphic_formset_tags %}
<div class="inline-group" id="{{ formset.prefix }}-group" data-options="{{ formset|as_script_options }}">
{% block add_button %}
{% if formset.show_add_button|default_if_none:'1' %}
{% if formset.empty_forms %}
{# django-polymorphic formset (e.g. PolymorphicInlineFormSetView) #}
<div class="btn-group" role="group">
{% for model in formset.child_forms %}
<a type="button" data-type="{{ model|as_model_name }}" class="js-add-form btn btn-default">{% glyphicon 'plus' %} {{ model|as_verbose_name }}</a>
{% endfor %}
</div>
{% else %}
<a class="btn btn-default js-add-form">{% trans "Add" %}</a>
{% endif %}
{% endif %}
{% endblock %}
{{ formset.management_form }}
{% for form in formset|include_empty_form %}
{% block formset_form_wrapper %}
<div id="{{ form.prefix }}" data-inline-type="{{ form|as_form_type|lower }}" class="inline-related{% if '__prefix__' in form.prefix %} empty-form{% endif %}">
{{ form.non_field_errors }}
{# Add the 'pk' field that is not mentioned in crispy #}
{% for field in form.hidden_fields %}
{{ field }}
{% endfor %}
{% block formset_form %}
{% crispy form %}
{% endblock %}
</div>
{% endblock %}
{% endfor %}
</div>
- polymorphic.templatetags.polymorphic_formset_tags.as_form_type(form)¶
Usage:
{{ form|as_form_type }}
- polymorphic.templatetags.polymorphic_formset_tags.as_model_name(model)¶
Usage:
{{ model|as_model_name }}
- polymorphic.templatetags.polymorphic_formset_tags.as_script_options(formset)¶
A JavaScript data structure for the JavaScript code
This generates the
data-optionsattribute forjquery.django-inlines.jsThe formset may define the following extra attributes:verbose_nameadd_textshow_add_button
- polymorphic.templatetags.polymorphic_formset_tags.include_empty_form(formset)¶
Make sure the “empty form” is included when displaying a formset (typically table with input rows)