使用上下文将变量传递到模板

时间:2019-11-21 09:35:03

标签: django django-templates django-views

在将变量传递到模板方面遇到问题,例如以下示例:

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 ...希望提供任何帮助。

1 个答案:

答案 0 :(得分:0)

您忘记了将上下文传递到您的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,
        )