2017-03-17 10 views
0

私のビューはModelオブジェクトを返しています。そのオブジェクトはHTMLコードとして値を持つフィールドを持っています。Djangoテンプレートのdivに安全にhtmlをレンダリングする方法

def my_view(request): 
    ob = MyModel.objects.get(pk=1) 
    print ob.html # "<div> Description <span> number </span>" 
    return render(request,'page.html',{'ob':ob}) 

私は{{ob.htmlのようなテンプレートでその値をレンダリングする場合は、私のhtml値のいくつかは

<div> Description <span> number </span> 

のような適切に閉じていないタグを持っています|安全な}}、それは親要素の構造を破壊し、私のページは私が設計したとおりに整列していません。

親の構造を壊さずにHTMLコードを安全に配置するにはどうすればよいですか。

+0

Hmmm ...多分[this](http://stackoverflow.com/questions/293482/how-do-i-fix-wrongly-nested-unclosed-html-tags)はあなたにとって便利ですか? –

+1

[入れ子にされた/閉じられていないHTMLタグを間違って修正する方法は?](http://stackoverflow.com/questions/293482/how-do-i-fix-wrongly-nested-unclosed-html-tags) – Nrzonline

答えて

0

一つの選択肢は、コンテンツサニタイズするbleachを使用することです:それはhtml5libに依存しているため

を、ブリーチは奇妙な、風変わりなHTMLの断片を扱う のモダンブラウザと同じくらい良いです。また、ブリーチの方法のいずれか はアンバランスタグまたはミスネストされたタグを修正します。

django-bleachには、filter for your templatesをすぐに使用できます。

関連する問題