Django の RSS 機能を使用して RSS フィードを作成しています。RSS フィード アイテムの<description>
には、HTML マークアップが含まれています。現在、次のテンプレートを使用して HTML マークアップをフィードに挿入しています。
{{ obj.post }}
もちろん、Django は特殊文字 ( <
、>
、&
など) をそれぞれの HTML エンティティに変換します。
HTML を出力して、すべての HTML コードを<![CDATA[...]]>
セクションにラップするだけでよいことはわかっています。このページでは、どちらの方法でもかまいません。それが本当なら、ある方法を他の方法よりも選ぶ正当な理由はありますか? 例 2 を使用する場合、Django が HTML テキストを CDATA タグで自動的にラップするためのフィルターはありますか、またはテンプレートを次のように変更する必要があります。
<![CDATA[
{{ obj.post|safe }}
]]>
編集
safe
Django は、フィルタを通過するかどうかに関係なく、RSS フィード (またはそれに関しては任意の XML) の特殊文字を自動エスケープするようです(問題はこのチケットで説明されています)。ただし、一般的な回答は大歓迎です。