如何在Django中使用include标签引入单独的HTML模板?
我正在尝试使用include这个Django模板标签,在里面引用一个处理表单格式的模板。不过,当我在我的模板中引用这个模板时,输出的每个动态部分都变成了每个字符单独一行,这真的很奇怪。比如,下面是输出的一部分:
<form action="/admin/events/create_submit/" method="post">
<div class="fieldWrapper">
: <
</div>
<div class="fieldWrapper">
: l
</div>
<div class="fieldWrapper">
: i
</div>
<div class="fieldWrapper">
: >
</div>
...
预期输出
<form action="/admin/events/create_submit/" method="post">
<div class="fieldWrapper">
<li><label>field</label><input type="text" /></li>
</div>
...
我意识到div里面的li的标记不正确,但我想弄明白为什么HTML会被编码,并且每个字符都分成新的一行,并且前面都有一个冒号“:”。
我想渲染的模板是这个:
<form action="{{action}}" method="post">
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
</div>
{% endfor %}
<p><input type="submit" value="Submit" /></p>
</form>
我这样引用include模板:
{% include "forms/form_template.html" %}
有没有人知道或者能帮我看看,为什么会导致每个动态部分都变成每个字符单独一行呢?
谢谢大家
安德鲁
2 个回答
1
无空格 标签
这个标签的作用是去掉HTML标签之间的空白字符。这些空白字符包括制表符和换行符。
1
form
可能是一个字符串,而不是一个表单对象。当你对一个字符串进行循环时,你得到的是它里面的每一个字符。