Шаблон Django и вопрос XML - PullRequest
3 голосов
/ 10 июня 2011

У меня есть это представление 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 %}

Это работает, однако символы <и 'заменяются их специальными html-значениями, такими как: </p>

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

Ответы [ 2 ]

5 голосов
/ 10 июня 2011

Вы должны окружить блок for тегами autoescape, например:

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

Джанго не будет экранировать символы между тегами autoescape

см. Здесь: https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#autoescape

3 голосов
/ 10 июня 2011

Замените {{item}} на {{item|safe}} в вашем коде.Это позволит избежать экранирования символов HTML.Для получения дополнительной информации см. Эту страницу документа .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...