は、htmlタグを除去することが可能.Is Djangoテンプレートフィルタを経由してDjangoテンプレートフィルタhtmlタグを削除
{{myvar|safe}}
<div>sddfdsfsdfsdf sd fsdf sd fsdf </div><a>This link</a><img src="some source" />
は、htmlタグを除去することが可能.Is Djangoテンプレートフィルタを経由してDjangoテンプレートフィルタhtmlタグを削除
{{myvar|safe}}
<div>sddfdsfsdfsdf sd fsdf sd fsdf </div><a>This link</a><img src="some source" />
ようなHTMLが持つ以下のだろう出力あなたはstriptags
を見ましたか?それは、このにあなたのHTMLを回し(マイナスもちろんのThis
の構文の強調表示、)になります。
sddfdsfsdfsdf sd fsdf sd fsdf This link
しかし、このテンプレートフィルタは、HTMLタグを取り除くためにregexを使用することに注意してください。 As we knowでは、正規表現はほとんどの場合HTMLを扱うための適切なツールではありません。あなたのHTMLが外部から来た場合は、実際のHTMLパーサでそれを浄化してください。 lxml.html.clean
。
striptags
すべての[X] HTMLタグを取り除くことが可能です。例えば
:MYVARが<b>Joel</b> <button>is</button> a <span>slug</span>
ある場合
{{ myvar|striptags }}
、出力がJoel is a slug
になります。
また、あなたのpythonコードで、つまりフォーム内でstrip_tagsを使用することもできます。
class AddressForm(forms.ModelForm):
class Meta:
model = Address
def clean(self):
from django.utils.html import strip_tags
cleaned_data = super(AddressForm, self).clean()
cleaned_data['first_name'] = strip_tags(cleaned_data.get('first_name'))
return cleaned_data
この単純なDjango HTML Sanitizer Appをチェックしてください。また、Django HTML Utilsを参照してください:フォームきれいな方法で例えば
、。
イメージタグはどうなりますか......? – Rajeev
これはすべてのタグを取り除き、DOM-speakの '' TextNode''sとみなされるものだけ残します。あなたのイメージは痕跡を残すことなく削除されます。 –
'{{myvar | striptags | safe}}'を使用して、 ' 'のようなHTMLエンティティがDjangoによってエスケープされずにHTMLコードで保持され、Webブラウザによってレンダリングされるようにすることをお勧めします。 'striptags'フィルタは実際にはエンティティではなくHTMLタグを削除することに注意してください。 – Luca