首页 > 解决方案 > 使用 Context 将变量传递给模板

问题描述

在获取要传递给模板的变量时遇到问题,示例如下:

def confirm(request, reference):

    c = {'return_reference': reference}

    msg_plain = render_to_string('mail.txt', c)
    msg_html = render_to_string('mail.html')
    send_mail(
        'Return - Ready for Collection',
        msg_plain,
        'some@sender.com',
        ['some@receiver.com'],
        html_message=msg_html,
        )

还有我的 HTML 模板:

<p>Return reference <strong>{{ return_reference }}</strong>....

无论如何,此结果在返回参考中始终为空白/ null ...任何帮助将不胜感激。

标签: djangodjango-templatesdjango-views

解决方案


您忘记将上下文传递给您的msg_html render_to_string

我建议您生成 html 消息,然后使用 html2text 从那里生成普通消息,如下所示:

from html2text import html2text  # import html2text module

def confirm(request, reference):

    c = {'return_reference': reference}

    msg_html = render_to_string('mail.html', c)  # render html message
    msg_plain = html2text(msg_html)  # create plain message variant
    send_mail(
        'Return - Ready for Collection',
        msg_plain,
        'some@sender.com',
        ['some@receiver.com'],
        html_message=msg_html,
        )

推荐阅读