2011-07-07 33 views

答えて

31

ようなHTMLが持つ以下のだろう出力あなたはstriptagsを見ましたか?それは、このにあなたのHTMLを回し(マイナスもちろんのThisの構文の強調表示、)になります。

sddfdsfsdfsdf sd fsdf sd fsdf This link 

しかし、このテンプレートフィルタは、HTMLタグを取り除くためにregexを使用することに注意してください。 As we knowでは、正規表現はほとんどの場合HTMLを扱うための適切なツールではありません。あなたのHTMLが外部から来た場合は、実際のHTMLパーサでそれを浄化してください。 lxml.html.clean

+1

イメージタグはどうなりますか......? – Rajeev

+3

これはすべてのタグを取り除き、DOM-speakの '' TextNode''sとみなされるものだけ残します。あなたのイメージは痕跡を残すことなく削除されます。 –

+1

'{{myvar | striptags | safe}}'を使用して、 '  'のようなHTMLエンティティがDjangoによってエスケープされずにHTMLコードで保持され、Webブラウザによってレンダリングされるようにすることをお勧めします。 'striptags'フィルタは実際にはエンティティではなくHTMLタグを削除することに注意してください。 – Luca

12

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を参照してください:フォームきれいな方法で例えば

、。

関連する問題