2009-05-20 13 views
0

したがって、htmlを含む "content"プロパティを持つオブジェクトを渡しています。AppEngineテンプレートで出力をhtmlエンコードすることは可能ですか?

<div>{{ myobject.content }}</div> 

文字がHTML文字としてレンダリングされるようにコンテンツを出力したいと考えています。 "conent" の

内容は次のようになります。<P>こんにちは</P >

私はこれのようにブラウザに送信されるようにしたい:&amplt; P &ampgt;こんにちは&amplt;/P & GT。

自動的にこれを行うために私のテンプレートに入れることができるものはありますか?

答えて

4

はい、{{ myobject.content | escape }}が役に立つはずです(Djangoテンプレート - 特定の「App Engine」テンプレートシステムがないと仮定すると、GAEアプリケーションではしばしばDjangoテンプレートシステムが使用されます)。 2段階のエスケープが必要な場合は、| escape部分を繰り返す必要があるかもしれません(あなたが指定した例のすべてではないようですが)。

+0

私の小さなアプリはGoogleのwebappフレームワークを使用しています。しかし、フレームワークはデフォルトでDjangoテンプレートシステムを使用すると思います。 – Jim

+0

あなたは正しいと思います。 –

2

これは、Djangoのdjango.utils.html.escape機能である:

def escape(html): 
    """Returns the given HTML with ampersands, quotes and carets encoded.""" 
    return mark_safe(force_unicode(html).replace('&', '&amp;').replace('<', '&l 
t;').replace('>', '&gt;').replace('"', '&quot;').replace("'", '&#39;')) 

また、hereを参照してください。

関連する問題