【问题标题】:How to use a Django include tag for a separate HTML template?如何将 Django 包含标签用于单独的 HTML 模板?
【发布时间】:2010-01-12 20:28:11
【问题描述】:

我正在尝试使用 include Django 模板标签,在其中我引用了一个处理表单格式的模板。当我在我的模板中引用它时,它会输出每个动态部分,每个新行的每个字符,这真的很奇怪。例如这里是输出的 sn-p:

<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 进行编码,并且每个字符在模板 div 内拆分为新行并以冒号“:”为前缀

我要渲染的模板是这样的:

<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 "forms/form_template.html" %}

有谁知道或可以帮助我了解为什么这会导致每个动态片段在每行上输出每个字符?

TIA

安德鲁

【问题讨论】:

    标签: python django


    【解决方案1】:

    form 可能是一个字符串而不是一个 Form 对象,并且迭代一个字符串会产生它的单个字符。

    【讨论】:

    • 我没有将我的字段从 form.as_ul() 更改为只是 form 。干杯
    【解决方案2】:

    无空间标签

    删除 HTML 标记之间的空格。这包括制表符和换行符。

    【讨论】:

    • 我不认为是这样,因为如您所见,它正在对标记进行编码,因此不会被解析为 html。
    猜你喜欢
    • 2021-08-29
    • 1970-01-01
    • 2015-07-25
    • 2013-06-14
    • 1970-01-01
    • 2013-06-05
    • 2016-08-12
    • 2014-05-03
    • 2018-02-22
    相关资源
    最近更新 更多