8

誰かが次のようなフレーズを入力した場合:

I see you driving

round town with the girl I love,

and I’m like: haiku.

(各行の間に空白行はありませんが、テキストは 3 つの別々の行に書かれています) を Web ページのテキスト ボックスに入力し、ボタンを押してから を介してデータベースに保存するDjangoと、その文字列が読み取られて印刷されます。ページ、テキストに改行が残っている HTML ページに印刷するにはどうすればよいですか?

したがって、次のように出力される代わりに: I see you driving round town with the girl I love, and I’m like: haiku.

次のように出力されます。

I see you driving

round town with the girl I love,

and I’m like: haiku.

私が使用する場合: (textarea)soAndSo.body(/textarea)、これは、ユーザーが最初にファイルを入力したときにファイルにあった改行を保持することを知っています。textareaボックスを使用せずに、これと同じ効果を得るにはどうすればよいですか?

4

4 に答える 4

4

改行記号\r\nを a に置き換えること<br/>は間違いなくオプションですが、csswhite-spaceプロパティを検討することをお勧めします。

#haiku {white-space:pre;}

いじられた、プロパティが驚くほどよくサポートされていることは注目に値します、IE6 +でも

于 2012-11-05T22:58:05.430 に答える
2

出力をラップすると、<pre>フォーマットが保持されます。<pre>soAndSo.body</pre>

より高度なソリューションには、改行を HTML 段落または改行に変換することが含まれます。Django にはこのためのフィルタが組み込まれています。linebreakslinebreaksbrの両方でこのトリックを実行できます。

それらを使用する場合は、次のように出力をフィルタリングします。{{ soAndSo.body|linebreaks }}

于 2012-11-05T22:25:20.710 に答える
2

テンプレートでlinebreaksbr (またはlinebreaks ) フィルターを使用します。

例えば:

{{ value|linebreaksbr }}

値がの場合Joel\nis a slug、出力は になりますJoel<br />is a slug

于 2012-11-05T22:25:50.213 に答える
0

改行がありますが、HTML では何もしません。

のようなフィルターを使用します{{ content|linebreaksbr }}

于 2012-11-05T22:26:23.317 に答える