我正在使用Django的RSS功能来构建RSS提要。 RSS订阅源的<description>
包含HTML标记。目前,我只是使用以下模板将HTML标记注入到Feed中:
{{ obj.post }}
当然,Django会将特殊字符(<
,>
,&
等)翻译为各自的HTML实体。
我知道我可以输出HTML并将所有HTML代码包装在<![CDATA[...]]>
部分中。 This page说任何一种方法都可以接受。如果这是真的,是否有充分的理由选择一种方法而不是另一种?如果我使用示例#2,是否有一个过滤器让Django自动将HTML文本包装在CDATA标签中,或者我应该将模板更改为:
<![CDATA[
{{ obj.post|safe }}
]]>
似乎Django会自动调整RSS提要中的特殊字符(或任何XML),无论是否通过safe
过滤器传递它(问题在{{3中讨论过) }})。但是,欢迎一般的答案。
答案 0 :(得分:2)
当我遇到像Django这样的问题时,我的第一个本能是跑掉并找到一个能够做我想要的普通Python库。在这种情况下,PyRSS2Gen可能是你的救世主。
它可能需要更多的扇动(因为它不会知道Django对象是什么)但它应该足够原始让你按照自己的意愿去做。
如果不是,那只是一个脚本。如果你愿意,你可以分开它以允许原始HTML =)
答案 1 :(得分:1)
请考虑使用django.contrib.syndication
中的Django联合框架,而不是编写自己的RSS XML Feed:
https://docs.djangoproject.com/en/dev/ref/contrib/syndication/
答案 2 :(得分:0)
嵌入HTML是CDATA过去一直困扰我的。希望RSS阅读器已经发展到可以处理这样的嵌入。