【发布时间】:2009-01-14 18:58:42
【问题描述】:
我正在使用 Django 的 RSS 功能来构建 RSS 提要。 RSS 提要项的<description> 包含HTML 标记。目前,我只是使用以下模板将 HTML 标记注入到提要中:
{{ obj.post }}
当然,Django 会将特殊字符(<、>、& 等)转换为各自的 HTML 实体。
我知道我可以只输出 HTML 并将所有 HTML 代码包装在 <![CDATA[...]]> 部分中。 This page 表示这两种方法都可以接受。如果这是真的,是否有充分的理由选择一种方法而不是另一种方法?如果我使用示例 #2,是否有一个过滤器让 Django 自动将 HTML 文本包装在 CDATA 标记中,或者我应该将模板更改为:
<![CDATA[
{{ obj.post|safe }}
]]>
编辑
似乎 Django 自动转义 RSS 提要(或任何 XML)中的特殊字符,无论您是否通过 safe 过滤器(该问题在 this ticket 中讨论)。不过,欢迎提供一般性答案。
【问题讨论】:
-
这是一个重复的问题:stackoverflow.com/questions/113024/…
-
我之前发现过,但我不太想知道 如何 去做(我已经知道了),但如果一种方法比另一种更好。我知道根据标准这两种方法都是可以接受的,但我想知道在实际实现中是否可能其中一种方法更缺乏。