{% load i18n common admin admin_explorer %} {% comment %} A formset as a table: one row per object, one column per field. Each field keeps a label of its own (read by assistive technology, and by the pickers) that names its row. {% endcomment %} {{ formset.management_form }} {% if formset.non_form_errors %} {% endif %} {% if formset.forms %}
{% if formset_title %}

{{ formset_title }}

{% elif formset.model %}

{{ formset.model|types|capfirst }}

{% endif %}
{% with first=formset.forms.0 %} {% for f in first.visible_fields %}{% endfor %} {% endwith %} {% for form in formset.forms %} {% for f in form.visible_fields %} {% endfor %} {% if form.non_field_errors %} {% endif %} {% endfor %}
{{ f.label }}
{% if forloop.first %}{% for hidden in form.hidden_fields %}{{ hidden }}{% endfor %}{% endif %} {{ f|widget }} {% if f.errors %}
    {% for error in f.errors %}
  • {{ error }}
  • {% endfor %}
{% endif %}
    {% for error in form.non_field_errors %}
  • {{ error }}
  • {% endfor %}
{% endif %}