Django表单错误列表渲染位置

6 forms django

当我使用{{f.as_p}}显示有错误的表单时,错误列表ul总是首先出现在标签和输入字段中.例如:

<ul class="errorlist">
<li>This field is required.</li>
</ul>
<p>
<label for="id_content">Content:</label>
<textarea id="id_content" class="required error" name="content" cols="80" rows="10"/>
</p>
Run Code Online (Sandbox Code Playgroud)

我知道你可以用

{% for field in f %}
<p>{{ field.label_tag }}: {{ field }}</p>
{{ field.errors }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

要在标签和字段之后更改错误列表ul位置,但我想直接使用f.as_p,f.as_table或{{f}},因为它简单易行,特别是当我必须显示很多表单时.

所以问题是:有没有办法在默认情况下在字段部分后显示错误列表?

Ger*_*dJP 7

我总是使用的循环,这是相当通用但非常可定制的:

{% for field in form %}
<tr>
    <td>{{ field.label_tag }}:</td>
    <td>
        {{ field.errors }}
        {{ field }}
        {% if field.help_text %}
        <img class="tooltip" title="{{ field.help_text }}" src="{{ MEDIA_URL }}images/icon_help.png">
        {% endif %}
    </td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

表格标签之间的:)


Jas*_*sta 1

Form.as_p() 只是 Form 类中的一个方法。只需创建一个继承自 Form 的新类,然后复制粘贴 as_p 方法并将其更改为您喜欢的即可。然后,每当您创建一个新表单时,都会从您的表单类而不是 Django 继承。