【问题标题】:django string shows good in terminal but not in templatedjango 字符串在终端中显示良好但在模板中不显示
【发布时间】:2014-06-02 12:16:11
【问题描述】:

我正在处理消息系统,但在我发送回复后,我的邮件正文模板视图全部放在 1 行,而当我在终端中打印相同的字符串时它工作得很好。

模板:

<div>
To: {{ mail.to }}<br>
From: {{ mail.sender }}<br>
{{ mail.view_sent_at }}<br>
</div>

<div>
<br>
{{ mail.body }}
</div>

我的回复正文功能: (将主体更改为回放)

def reply_format(self):
    message = self.body
    message = "> " + message
    message = message.replace("\r\n", "\r\n> ")
    send_information = "\r\n\r\n> To: %s\r\n> From: %s\r\n> Date: %s\r\n>\r\n" % (self.to, self.sender, self.view_sent_at())
    message = send_information + message
    return message

现在作为示例,当我保存它时,我的邮件正文看起来像这样(以及之后它在我的终端中的样子)。

Send a reply

> To: admin
> From: admin
> Date: 12:14 02-06-2014
>
> This is a test.
> Need some extra lines
> Byebye

当我在模板中打开它时,它看起来像:

To: admin
From: admin
12:14 02-06-2014

Send a reply > To: admin > From: admin > Date: 12:14 02-06-2014 > > This is a test. > Need some extra lines > Byebye 

【问题讨论】:

  • 你为什么对此感到惊讶?如果您在 HTML 页面中查看它,则需要使用 HTML 标记进行换行等。作为纯文本电子邮件,会保留换行符。
  • 所以在保存我的邮件时我应该用
    替换 \r\n 吗?因为在第一封邮件中它工作正常,所以在回复后它会在 1 行

标签: python django string format


【解决方案1】:

您可以在模板中使用linebreaks filter 将换行符转换为适当的 HTML 标记。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2019-12-10
    • 2015-04-28
    • 2016-08-01
    • 2014-07-29
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多