【问题标题】:How to generate a line break in Django template如何在 Django 模板中生成换行符
【发布时间】: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}}(列表中没有空格)。但显然这不是一个好的。任何帮助将不胜感激。

【问题讨论】:

    标签: html django-templates newline


    【解决方案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
      猜你喜欢
      • 2011-01-19
      • 1970-01-01
      • 2019-02-11
      • 2016-08-13
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      • 2012-11-01
      • 2023-03-20
      相关资源
      最近更新 更多