Я использую возможности Django RSS для создания канала RSS. <description>
элементов RSS-канала содержит HTML-разметку. В настоящее время я просто внедряю разметку HTML в канал, используя следующий шаблон:
{{ obj.post }}
Django, конечно, переводит специальные символы (<
, >
, &
и т. Д.) В соответствующие им объекты HTML.
Я знаю, что мог бы просто вывести HTML-код и обернуть весь HTML-код в разделы <![CDATA[...]]>
. На этой странице написано, что любой метод приемлем. Если это правда, есть ли веская причина выбрать один метод вместо другого? И если я использую пример № 2, есть ли фильтр для Django, чтобы автоматически оборачивать текст HTML в теги CDATA, или я должен просто изменить свой шаблон на:
<![CDATA[
{{ obj.post|safe }}
]]>
Редактировать
Похоже, что Django автоматически экранирует специальные символы в RSS-каналах (или в любом другом XML) независимо от того, пропускаете ли вы его через фильтр safe
или нет (проблема обсуждается в этого тикета ). Тем не менее, общие ответы приветствуются.