2009-12-12 51 views

答えて

61

linebreaks

適切なHTMLとプレーンテキストで改行を置き換えます。 1つの改行がHTML改行(<br />)になり、新しい行の後に空白行が続くと改行(</p>)になります。例えば

{{ value|linebreaks }}

値がJoel\nis a slugであれば、出力は<p>Joel<br />is a slug</p>.

+4

のリンクを使って返信するときに、サイトが将来ダウンする場合には、関連する情報を投稿に入れてください – Mike

+0

探している人のためにjinja2のソリューションは、次のstackoverflowのリンクはその答えです。私はこの回答を見つけるのに苦労していましたので、ここにリンクを張っています。http://stackoverflow.com/questions/10436458/allowing-br-tags-with-google-app-engine-and-jinja2 –

+0

電子メールや入力値、javascriptなど、htmlをレンダリングする以外に '\ n'文字を使用しますか? – TheJKFever

-1

使用{% autoescape off %} {{ your_variable }} {% endautoescape %}になります。

+0

これを実行しないでください。潜在的なセキュリティ上の問題が発生します。受け入れられた答えを使用します。 –

0

私は、テンプレートにユーザーの最小限のカスタム入力のためのテキスト領域を持っていました。ユーザーが挿入した書式付きテキストをそのまま使用したいと考えました。 解決策として、私は単純にModel変数をTextField型に変更しました。管理者にユーザーの書式付きテキストも表示されます。 :)

ex。

class Uadds(models.Model): 
    title  = models.CharField(max_length = 50) 
    description = models.TextField(max_length = 1000) 

タイトルは改行を表示しませんが、説明が表示されます。 私はこれをリッチテキストエディタでテストしていません... これが役に立ったと思っています。

5

{% autoescape off %}を使用しないでください!さもなければ、ユーザーが制御する入力がエスケープされないことがあります。これはセキュリティ上のリスクです。前述のようにlinebreaks or linebreaksbrを使用してください。

関連する問題