我有一个模板,我需要在样式标签中嵌入一些来自模型的 CSS,如下所示:
<style>{{m.get_css_text}}</style>
(如果重要,m 实际上是一个 for-in var)
除了仅在 IE 中发生的一个故障外,这没有问题。我在 CSS 中有一条规则包括一个过滤规则,它使用引号,像这样 -
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#f5f5f5") !important;
django 的默认转义行为会转义引号,这会破坏 CSS 规则,这会破坏 IE 中适用该规则的 CSS。
使用 |safe 过滤器当然可以解决这个问题,但我宁愿不使用它。目前,持有 CSS 的模型只能由我的员工编辑,但将来可以由我们的用户创建。
我的问题是——我应该使用什么过滤器来防止引号等转义,但要保证标签安全?到目前为止,我唯一的想法是使用 removetags 过滤器,但我不确定这是不是最好的主意。
谢谢!