我正在使用 Django 进行开发,从数据库中检索一些包含换行符的文本。但是,当我使用模板标记将其呈现到模板时,它不会显示换行符。

问题是什么?

最佳答案

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

你可以用 <pre> 标签包裹你的文本,这样 HTML 就会明白它是预先格式化的:

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

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

你可以试验这些,看看你更喜欢哪一个。

否则,您可以在 View 中使用字符串操作,以更适合您的方式将纯文本转换为 HTML。如果您想变得更高级,您可以编写自己的过滤器,以您喜欢的方式进行转换,并在整个模板中使用它。

关于html - 从数据库渲染文本时,Django 不显示换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1356048/

10-17 00:25