Синдикация Django: Как избежать выхода из описания?
Я пытаюсь создать веб-канал RSS-канала с помощью Django, но не могу поместить изображение в поле описания, потому что html-код экранируется, даже если он находится в блоке {% autoescape off %}.
Вот мой шаблон описания:
{% autoescape off %}
<img src="{{obj.img.url}}"/>
{% endautoescape %}
И вот результат:
<img src="http://localhost:8000/media/comics/001__.png"/>
Как я могу избежать этого автоэкранирования?
2 ответа
Как я могу избежать этого автоэкранирования?
На самом деле, вам нужно сохранить это авто-экранирование... Внимательно посмотрите на любые другие RSS-каналы: http://xkcd.com/rss.xml
Цитата из спецификации Консультативного совета RSS:
Канал может содержать любое количество элементов. Предмет может представлять собой "историю" - очень похожую на историю в газете или журнале; если это так, его описание представляет собой краткий обзор истории, и ссылка указывает на полную историю. Элемент также может быть завершен сам по себе, если это так, описание содержит текст (допускается кодирование объектов HTML; см. Примеры), а ссылка и заголовок могут быть опущены. Все элементы элемента являются необязательными, однако должен присутствовать хотя бы один из заголовка или описания.
Похоже, это не имеет никакого отношения к автоэкранированию, так как это никогда не "ускользнет" от жестко закодированных тегов, которые вы явно ввели в свой шаблон, как здесь.
Я подозреваю, что есть что-то еще, что делает побег. Можете ли вы опубликовать код, который отображает шаблон и что-то делает с результатом?