How errors are displayed
и настройка формата списка ошибок показывают, что представляет собой вывод поля ошибки по умолчанию и как его настроить.
Я недавно использовал reusable template
в своих проектах, что хорошо для меня работает.
table_form.html:
<table>
{% for error in form.non_field_errors %}
<tr><td>{{ error }}</td></tr>
{% endfor %}
{% for field in form %}
{% for error in form.username.errors %}
<tr><td>{{ error }}</td></tr>
{% endfor %}
<tr><th>{{ field.label_tag }}:</th><td>{{ field }}</td></td>
{% endfor %}
</table>
template.html:
<form>
{% include 'table_form.html' %}
</form>
работает также несколько форм, например просмотр с контекстом, включая form1 и form2:
template.html:
<form>
{% include 'table_form.html with form=form1 %}
</form>
<form>
{% include 'table_form.html with form=form2 %}
</form>
редактирование:
Вот метод as_table
, как определено в классе BaseForm:
210 def as_table(self):
211 "Returns this form rendered as HTML <tr>s -- excluding the <table></table>."
212 return self._html_output(
213 normal_row = u'<tr%(html_class_attr)s><th>%(label)s</th><td>%(errors)s%(field)s%(help_text)s</td></tr>',
214 error_row = u'<tr><td colspan="2">%s</td></tr>',
215 row_ender = u'</td></tr>',
216 help_text_html = u'<br /><span class="helptext">%s</span>',
217 errors_on_separate_row = False)
переопределение этого метода в вашей форме позволит вам изменить рендеринг при использовании {{form.as_table}}