我正在使用Django进行开发,从数据库中检索包含换行符的一些文本。但是,当我使用模板标记将其渲染到模板时,它不会显示换行符。
有什么问题?
答案 0 :(得分:190)
您必须记住您的模板正在生成HTML。在HTML中,换行符只是另一个空格,并不意味着将以下文本放在新行上。有许多方法可以在HTML中强制使用新行。
您可以使用<pre>
标记包装文本,以便HTML了解它已预先格式化:
<pre>{{value}}</pre>
您可以使用Django过滤器将纯文本换行符转换为HTML。 linebreaks
会将单个换行符转换为<br>
个标记,并将换行符加倍转换为<p>
个标记。 linebreaksbr
只需将换行符转换为<br>
代码:
{{value|linebreaks}}
{{value|linebreaksbr}}
你可以试验这些,看看你更喜欢哪一个。
如果不这样做,您可以在视图中使用字符串操作,以便以更适合您的方式将纯文本转换为HTML。如果你想要变得非常先进,你可以编写自己的过滤器来转换你喜欢的方式,并在整个模板中使用它。
答案 1 :(得分:20)
不确定我是否完全理解您的问题,但请尝试使用linebreaks过滤器。
{{ value|linebreaks }}