Синдикация Django: Как избежать выхода из описания?

Я пытаюсь создать веб-канал RSS-канала с помощью Django, но не могу поместить изображение в поле описания, потому что html-код экранируется, даже если он находится в блоке {% autoescape off %}.

Вот мой шаблон описания:

{% autoescape off %}
<img src="{{obj.img.url}}"/>
{% endautoescape %}

И вот результат:

&lt;img src="http://localhost:8000/media/comics/001__.png"/&gt;

Как я могу избежать этого автоэкранирования?

2 ответа

Решение

Как я могу избежать этого автоэкранирования?

На самом деле, вам нужно сохранить это авто-экранирование... Внимательно посмотрите на любые другие RSS-каналы: http://xkcd.com/rss.xml

Цитата из спецификации Консультативного совета RSS:

Канал может содержать любое количество элементов. Предмет может представлять собой "историю" - очень похожую на историю в газете или журнале; если это так, его описание представляет собой краткий обзор истории, и ссылка указывает на полную историю. Элемент также может быть завершен сам по себе, если это так, описание содержит текст (допускается кодирование объектов HTML; см. Примеры), а ссылка и заголовок могут быть опущены. Все элементы элемента являются необязательными, однако должен присутствовать хотя бы один из заголовка или описания.

http://www.rssboard.org/rss-encoding-examples

Похоже, это не имеет никакого отношения к автоэкранированию, так как это никогда не "ускользнет" от жестко закодированных тегов, которые вы явно ввели в свой шаблон, как здесь.

Я подозреваю, что есть что-то еще, что делает побег. Можете ли вы опубликовать код, который отображает шаблон и что-то делает с результатом?

Другие вопросы по тегам