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

有什么问题吗?

推荐答案

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

您可以使用<pre>标记来包装文本,以便HTML理解它是预格式化的:

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

您可以使用Django过滤器将纯文本换行符转换为HTML.linebreaks将单个换行符转换为<br>个标记,将双换行符转换为<p>个标记.linebreaksbr只会将换行符转换为<br>个标记:

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

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

如果做不到这一点,您可以在视图中使用字符串操作,以更适合您的方式将纯文本转换为HTML.如果你想变得更高级,你可以编写自己的过滤,以你喜欢的方式转换,并在你的模板中使用它.

Html相关问答推荐

Bootstrap右和左颈部

每次在视口中运行动画

附加点的列表样式

风格规则应该适用于响应图像的哪些方面?哪种规则适用于<;图片和gt;,哪种规则适用于<;img>;?

carousel 的垂直滚动按钮居中

SVG';COLOR&39;属性不优先于通用css';COLOR&39;属性

如何在css中在span中绘制圆弧?

30000ms后超时重试:期望找到元素:someElement,但从未找到它

:after 伪元素没有出现,即使它有 content 属性

如何调整底部有 SVG 的元素的高度,使其在所有宽度上看起来都不错?

HTML 如何根据屏幕尺寸调整/裁剪视频背景?

透明渐变凹矩形

文本溢出:省略号不适用于 flexbox

font awesome 的 CDN/CSS 如何工作?

我如何让这个动画播放,然后停止,然后在设定的时间后再次播放? (CSS)

如何让 Reindeer 居中

为什么相同持续时间的转换需要不同的时间?

如何在不删除

标记的情况下加入 HTML 中的段落

列宽等于最宽列宽度的无界容器

左右图像,响应页面大小并居中