如何在Django中使用include标签引入单独的HTML模板?

1 投票
2 回答
1918 浏览
提问于 2025-04-15 17:56

我正在尝试使用include这个Django模板标签,在里面引用一个处理表单格式的模板。不过,当我在我的模板中引用这个模板时,输出的每个动态部分都变成了每个字符单独一行,这真的很奇怪。比如,下面是输出的一部分:

<form action="/admin/events/create_submit/" method="post">

    <div class="fieldWrapper">

        : &lt;
    </div>

    <div class="fieldWrapper">

        : l
    </div>

    <div class="fieldWrapper">


        : i
    </div>

    <div class="fieldWrapper">

        : &gt;
    </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 可能是一个字符串,而不是一个表单对象。当你对一个字符串进行循环时,你得到的是它里面的每一个字符。

撰写回答