web-dev-qa-db-ja.com

Python Djangoテンプレートで改行を印刷する方法

{'quotes': u'Live before you die.\n\n"Dream as if you\'ll live forever, live as if you\'ll die today"\n\n"Love one person, take care of them until you die. You know, raise kids. Have a good life. Be a good friend. Try to be completely who you are, figure out what you personally love and go after it with everything you\'ve got no matter how much it takes." -Angelina Jolie.'}

辞書に改行があることに注意してください:\ n

これらの改行を含むテンプレートを表示するにはどうすればよいですか?

{{quotes | withlinebreaks\n}}

28
TIMEX

linebreaks フィルターを使用します。

例えば:

{{ value|linebreaks }}

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

linebreaksbr フィルターを使用して、<br>を追加せずにすべての改行を<p>に変換することもできます。

例:

{{ value|linebreaksbr }}

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

Ignacioの答えlinebreaksフィルター)との違いは、linebreaksがテキスト内の段落を推測し、<p>内のすべての段落をラップしようとすることです。ここで、linebreaksbrは単に 改行を<br> で置き換えます。

ここにデモがあります:

>>> from Django.template.defaultfilters import linebreaks
>>> from Django.template.defaultfilters import linebreaksbr
>>> text = 'One\nbreak\n\nTwo breaks\n\n\nThree breaks'
>>> linebreaks(text)
'<p>One<br />break</p>\n\n<p>Two breaks</p>\n\n<p>Three breaks</p>'
>>> linebreaksbr(text)
'One<br />break<br /><br />Two breaks<br /><br /><br />Three breaks'
8
Burnash