HTML 中的模板标记未呈现新行

New line not rendering from template tag in HTML

我有一组信息要使用 django 模板标签呈现在我的网页上。

 {% for product in sales %}

      <div>
        <span>Customer:{{product.to_user}}</span><br>
        <span>{{product.time}}</span><br>
        <p class="message">{{product.message}}</p>
      </div>

      {% endfor %}

{{product.message}} 模板标签包含由换行符 ('\n') 分隔的信息。但是,在 HTML 中不呈现换行符,信息显示在单行中,省略了 '\n'。 我尝试从 <p> 标签中捕获信息并将 \n 替换为 <br>,然后再次在同一个 <p> 标签中设置文本。但是好像不行。
如上所述,这是我的方法。

$(document).ready(function(){

      let renderedText = $(".message").text()

      //alert(renderedText)
      final_txt = renderedText.replace(/\n/g,"<br>")

      $(".message").val(final_txt)
       
    })

我应该进行哪些更改或添加才能使其正常工作? 提前致谢。

像这样使用模板过滤器 linebreaksbr :

<p class="message">{{ product.message|linebreaksbr }}</p>

为了获得行信息,您可以使用 pre 标记 来跟踪空格和换行。

let message = `Lorem ipsum text Lorem ipsum text Lorem ipsum text.
Lorem ipsum textLorem ipsum text

Lorem ipsum textLorem ipsum textLorem ipsum textLorem ipsum textLorem ipsum textLorem ipsum textLorem ipsum textLorem ipsum textLorem ipsum text`;
<div><pre>{message}</pre></div>