如何为Django表单向导自定义模板正确显示验证错误?

时间:2013-02-04 08:20:48

标签: django django-forms django-templates

此问题是我发布的问题的后续内容及其在此处收到的答案:How to change the layout for templates in a Django Form-Wizard?

我制作了一个4步表单向导。我已连接4个与每个表单对应的自定义模板。每个此类模板都扩展了一个名为form_base.html的模板。

我想在每个表单上自定义布局。所以我需要单独操作表单元素。第一个表单中的一个元素名为“comment1”。所以在模板中,我有:

<table>
    <tr>
        <th align="right">
            Comment #1
        </th>
        <td>
            {{ wizard.form.comment1 }}
        </td>
    </tr>
</table>

这部分有效。如果用户在该字段中键入有效条目,它可以正常工作。但是,如果用户键入无效数据,则不会显示错误消息。如何解决此问题以正确显示错误消息?

1 个答案:

答案 0 :(得分:1)

文档彻底解决了这个问题(https://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs#customizing-the-form-template)。您可以直接从表单和字段中访问它们来访问和显示表单错误和字段错误。这是一个例子。

{{ wizard.form.non_field_errors }}
<table>
    <tr>
        <th align="right">
            Comment #1
        </th>
        <td>
            {{ wizard.form.comment1 }}
        </td>
        {% if wizard.form.comment1.errors %}
        <td>{{ wizard.form.comment1.errors }}</td>
        {% endif %}
    </tr>
</table>