我正在使用 Django 的 RSS 功能来构建 RSS 提要。<description>
RSS 提要项的 包含 HTML 标记。目前,我只是使用以下模板将 HTML 标记注入到提要中:
{{ obj.post }}
当然,Django 会将特殊字符(<
、>
、&
等)翻译成它们各自的 HTML 实体。
我知道我可以只输出 HTML 并将所有 HTML 代码包装在<![CDATA[...]]>
部分中。这个页面说这两种方法都是可以接受的。如果这是真的,是否有充分的理由选择一种方法而不是另一种方法?如果我使用示例#2,是否有一个过滤器让 Django 自动将 HTML 文本包装在 CDATA 标记中,或者我应该将模板更改为:
<![CDATA[
{{ obj.post|safe }}
]]>
编辑
无论如何,无论您是否通过safe
过滤器,Django 似乎都会自动转义 RSS 提要(或任何 XML)中的特殊字符(此问题已在此票中讨论)。但是,欢迎提供一般性答案。