【问题标题】:Django template and XML questionDjango 模板和 XML 问题
【发布时间】:2011-06-10 00:53:54
【问题描述】:

我有这个 Django 视图,它使用这个列表执行 render_to_response(rss.xml, {"list":list}):

<a href="link.html">description</a>
<a href="link2.html">description2</a>
<a href="link3.html">description3</a>

rss.xml 模板如下:

<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
        {% for item in list%}
        {{item}}
        {% endfor %}

这可行,但是

<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
&lt;a href=&quot;link.html&quot;&gt;Description&lt;/a&gt;
&lt;a href=&quot;link2.html&quot;&gt;Description2&lt;/a&gt;
&lt;a href=&quot;link3.html&quot;&gt;Description3&lt;/a&gt;

我怎样才能输出原始字符串,使文档变为:

<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<a href="link.html">description</a>
<a href="link2.html">description2</a>
<a href="link3.html">description3</a>

【问题讨论】:

    标签: python xml django


    【解决方案1】:

    你应该用自动转义标签包围 for 块,如下所示:

    <?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
    {% autoescape off %}
        {% for item in list%}
        {{item}}
        {% endfor %}
    {% endautoescape %}
    

    django 不会转义 autoescape 标签之间的字符

    请看这里: https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#autoescape

    【讨论】:

      【解决方案2】:

      在您的代码中将 {{item}} 替换为 {{item|safe}}。它将避免转义 HTML 字符。欲了解更多信息,see this doc page

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-14
        • 2010-11-16
        • 2012-01-26
        • 2012-05-14
        • 1970-01-01
        • 2015-06-02
        • 2016-11-04
        • 2016-04-27
        相关资源
        最近更新 更多