如何在 Django 模板中生成换行符

Posted

技术标签:

【中文标题】如何在 Django 模板中生成换行符【英文标题】:How to generate a line break in Django template 【发布时间】:2011-02-06 23:49:50 【问题描述】:

我想给一个文本区域提供默认值。代码是这样的:

<textarea>userSetting.list | join:"NEWLINE"</textarea>

其中userSetting.list 是一个字符串列表,其中的每一项都应显示在一行中。

textarea 将标签之间的内容作为默认值,保留其换行符并且不解释任何 html 标签(这意味着 &lt;br&gt;,\n 将不起作用)。

我找到了解决方案:userSetting.list | join:" " | wordwrap:0(列表中没有空格)。但显然这不是一个好的。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

由于克里斯没有来领取功劳,我必须自己回答我的问题。 (不过还是感谢他指点the right direction)

HTML 实体 &amp;#10; 代表 NEWLINE 字符,不会在 Django 模板中解释。所以这会起作用:

<textarea>userSetting.list | join:"&#10;"</textarea>

【讨论】:

【参考方案2】:

HTML 中的文本区域确实尊重换行符。这不逃避 \n:

<textarea>userSetting.list | join:"\n"</textarea>

我在想它应该把 \n 变成一个换行符,所以你的源代码看起来像这样:

<textarea>Setting 1
Setting 2
Setting 3</textarea>

如果这样做,这将起作用,但它可能无法正确转换 \n

【讨论】:

谢谢,但我已经知道了。只是我不知道如何在 Django 模板中插入换行符。 (克里斯帮我找到了)【参考方案3】:

如果 和 \n 不起作用,请尝试使用 userSetting.list | join:"&amp;#10;"。让我知道你过得怎么样...

:P

【讨论】:

&amp;vbCrLf 不是有效的 HTML 实体。但感谢您指出正确的方向:userSetting.list | join:"&amp;#10;" 有效。请您修改您的答案,以便我可以将其标记为已接受:) 感谢 Iamamac,我需要 @iamamac 8 年后我回来说不客气,我更新了我的答案哈哈:P

以上是关于如何在 Django 模板中生成换行符的主要内容,如果未能解决你的问题,请参考以下文章

在视图而不是模板中生成带有 Django 静态 url 的图像标签

在 Django 模板中生成 JSON 的陷阱

如何在 django 中生成随机数

如何在 Django REST Swagger 中生成响应消息列表?

如何在邮件模板中生成正确的 URL?

如何在 ember.js 组件模板中生成多条内容?