<p>您还可以使用<a href="http://docs.djangoproject.com/en/dev/ref/templates/builtins/#linebreaksbr" rel="noreferrer">^{<cd1>}</a>过滤器将所有新行简单地转换为<code><br></code>
没有额外的<code><p></code>。</p>
<p>示例:</p>
<pre><code>{{ value|linebreaksbr }}
</code></pre>
<p>如果<code>value</code>是<code>Joel\nis a slug</code>,则输出为<code>Joel<br>is a slug</code>。</p>
<p>与<a href="https://stackoverflow.com/a/2316038/318359">Ignacio's answer</a>(<code>linebreaks</code>过滤器)的区别在于<code>linebreaks</code>尝试猜测文本中的段落,并将每个段落包装在<code><p></code>中,其中<code>linebreaksbr</code>只是<a href="https://github.com/django/django/blob/5033999153f7303a18d94ea2f08ed78545c0f3df/django/template/defaultfilters.py#L434" rel="noreferrer">substitutes newlines with ^{<cd2>}</a>。</p>
<p>下面是一个演示:</p>
<pre><code>>>> 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'
</code></pre>