4

Django には、格納されたデータに表示されないように特定の html タグを削除できるテンプレート タグがあります。

django のドキュメントに例があります。b または span タグはすべて削除されます。 https://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#removetags

{{ value|removetags:"b span"|safe }}

しかし、逆を行う良い方法があるかどうか疑問に思っています。たとえば、指定されたタグを除くすべてのタグをブラックリストに登録します。私の場合、太字と斜体のタグを許可したいだけです。

4

2 に答える 2

3

漂白剤を使用して独自のテンプレート タグを記述します。

于 2012-05-04T19:07:06.223 に答える
1

元のremovetagsとこの正規表現に基づいて、独自のテンプレート タグを作成できます。

>>> import re
>>> tags = ['b', 'i']
>>> tags_re = u'(%s)' % u'|'.join(tags)
>>> striptags_re = re.compile(ur'</(?!{0}).*?>|<(?!/)(?!{0}).*?>'.format(tags_re), re.U)
>>> value = '<b>foo</b><i><p>bar</b>'
>>> striptags_re.sub(u'', value)
u'<b>foo</b><i>bar</b>'
>>> value = '<b>foo</b><p>bar</p>'
>>> striptags_re.sub(u'', value)
u'<b>foo</b>bar'
于 2012-05-04T19:28:23.427 に答える