Django模板p标记无缘无故关闭

2024-09-28 21:05:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想详细说明一个django表格as\p()以便我可以自定义一些字段,但在大多数情况下,我只需要简单的as\p呈现。所以当我在田野里转来转去的时候,我把大部分都变成了这样:

<p>
    {{ field.errors }}
    {{ field.label_tag }}
    {{ field }}
</p>

但偶尔,我的html会变成这样:

<p>
                    </p>
<ul class="errorlist">
    <li>This field is required.</li>
</ul>
<label for="id_name">Name</label>
<input id="id_name" maxlength="200" name="name" type="text" autocomplete="off">
<p></p>

那些无关的p和我想要的p中的东西不在p中

是什么原因造成的?我查了又查,我知道我没有漏掉任何结束标记。你知道吗


Tags: djangonameidfieldhtmlastag情况
2条回答

看起来您没有在html中初始化窗体。 请参见以下示例:

<form method="post" action="." enctype="multipart/form-data">
    {% csrf_token %}
    {% for field in my_form %}
    <p>{{ field.label_tag }} {{ field }}</p>
    {% endfor %}
    <input type="submit" value="Submit Form" />
</form>

HTML不允许在p元素中使用像ul这样的块元素。因此,当您的字段有一个错误(用ul表示)时,浏览器会关闭p使其有效。(您所看到的是浏览器的DOM表示,而不是实际呈现的HTML,它不包含magic close元素:请执行“view source”查看这一点。)

您应该将错误标记移出p。如果你愿意,你可以用div这样的东西来包装整个东西。你知道吗

相关问题 更多 >