Domyślna struk­tura gene­ro­wana przez metodę django.forms.Form.as_table pozo­sta­wia nieco do życze­nia. Stąd nieco wygod­niej­sza i nie­in­wa­zyjna wer­sja w postaci fil­tra (zasta­na­wiam się, czemu ta wbu­do­wana w Django ma postać metody):

from django.template.loader import render_to_string

@register.filter
def as_table(form):
return render_to_string(‘form_as_table.html’, {‘form’: form})

Do kom­pletu przy­kła­dowy szablon:

{% for f in form %}
{% if f.errors %}
<tr […]