python - Django模板和XML问题

标签 python xml django

我有这个 Django View ,它对这个列表执行 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 %}

这是有效的,但是 <'s 和 "'s 被它们特殊的 html 字符值所取代,例如:

<?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>

最佳答案

你应该像这样用自动转义标签包围 for block :

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

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

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

关于python - Django模板和XML问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300896/

相关文章:

django - 删除在特定字段中具有重复值的 Django QuerySet 对象

python - 如何在 LXLE 上使用 Apache 和 mod_wsgi 为 Django 应用程序提供服务

python - patch() 得到了意外的关键字参数

c# - 如何将 Dictionary<string, object> 序列化/反序列化为 XML

python - Zeromq 请求/响应示例显示 Python 中队列的使用?

javascript - 将 iframe 的内容类型更改为 xml 以显示 xml 并通过 DOM 操作它

android - 代码似乎改变了我的布局文件

python - 我应该如何为 Django Channels 2.0 配置 Redis?

python - python有泛型方法吗?

python - 尝试在 python 中打开并读取文件,但它创建并打开一个空文件