Существует тег divisibleby.
Итак, вы можете сделать что-то (уродливое), например:
<table><tr>
{% for field in form %}
<td>{{ field }}</td>
{% if forloop.last %}
</tr>
{% else %}
{% if forloop.counter|divisibleby:"3" %}
</tr><tr>
{% endif %}
{% endif %}
{% endfor %}
</table>
. Кроме того, вы можете дать вашему классу формы метод table_print
, который возвращает строка html (завернутая в mark_safe
).