从数据库渲染文本时,Django不显示换行符


Answers:


222

您必须记住您的模板正在生成HTML。在HTML中,换行符只是另一个空格,并不意味着将以下文本放在换行符上。有很多方法可以在HTML中强制换行。

您可以使用<pre>标签来包装文本,以便HTML能够理解其是否已预先格式化:

<pre>{{value}}</pre>

您可以使用Django过滤器将纯文本换行符转换为HTML。linebreaks将单个换行符变成<br>标签,而将双换行符变成<p>标签。linebreaksbr只是将换行符变成<br>标签:

{{value|linebreaks}}
{{value|linebreaksbr}}

您可以尝试这些,看看哪个更喜欢。

失败的话,您可以在视图中使用字符串操作,以更适合您的方式将纯文本转换为HTML。而且,如果您想真正提高自己的水平,可以编写自己的过滤器以转换您喜欢的方式,并在整个模板中使用它。



30

不知道我是否完全理解您的问题,但是请尝试使用换行符过滤器。

{{ value|linebreaks }}

这应该是答案。使用<pre> </ pre>只是胡扯。
Rahul
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.