如何在Django模板中输出带换行的数据库文本?

18 投票
4 回答
13207 浏览
提问于 2025-04-17 23:09

我在数据库里保存了一段文本,内容是这样的。

This is the text

This is on a new line with a space in between

当我在Django模板中输出这段文本时,它显示成了这样。

This is the text This is on a new line with a space in between

我该怎么做才能让Django模板中的文本显示得和数据库里的一样呢?

4 个回答

0

<pre> 标签工作得很好,但它有一些默认的设置(比如使用等宽字体和边距)。

对我来说,解决办法是保留 <pre> 标签的核心特性 - 下面的设置:

white-space: pre;

然后进行修改(如果你不需要额外的空格):

white-space: pre-line;

现在,来自数据库字段 models.TextField 的数据可以保留所有的换行符。

0

试着使用 <br/>

<br/> 是一段HTML代码。别忘了你是在用Django做HTML。记住这一点可以帮助你解决很多初学者的问题。

3

我在使用 linebreaks 的时候,它会用 <p> 标签来处理换行,这样可能会导致空行不被保留,或者因为CSS样式的原因你根本看不到空行。你可以试试 linebreaksbr,它会用 <br/> 来处理换行。

希望这对你有帮助。

26

使用 linebreakslinebreaksbr 这个过滤器:

{{ text|linebreaks }}

或者把文本放在 <pre>...</pre> 标签之间。

<pre>{{ text }}</pre>

撰写回答