我有这个 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">
<a href="link.html">Description</a>
<a href="link2.html">Description2</a>
<a href="link3.html">Description3</a>
我怎样才能输出原始字符串,使文档变成:
<?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/