4

我的情况很简单:

  • 我有一个文本/普通邮件模板:body.txt
  • 另一个用于 text/html 邮件:body.html

这两封邮件的内容是相同的,因为我使用 EmailAlternative 在同一封邮件中发送。

正文.txt

{% block message %}{% endblock %}

{{ site_name }} team
-----------------
If you need help contact use at {{ support_mail }}

正文.html

<html>
    <head>
        <title>{% block title %}{% endblock %}</title>
    </head>
    <body>
        <p>{% filter linebreaksbr %}{% block message %}{% endblock %}{% endfilter %}</p>
        <p><strong>{{ site_name }} team</strong></p>
        <hr/>
        If you need help contact use at <a href="mailto:{{ support_mail }}">{{ support_mail }}</a>
    </body>
</html>

当然,翻译、css 和不止一个块会稍微复杂一些。

我的愿望是定义邀请.txt

{% block message %}Dear {{ first_name|title }} {{ last_name|upper }},

Your inscription has bee accepted. Welcome!
{% endblock %}

我希望能够加载(body.txt、invitation.txt)和(body.html、invitation.txt)来获取我的两个 html 部分。

编辑:

像这样的东西:

邀请/body.txt

{% extends body.txt invitation.txt %}

邀请/body.html

{% extends body.html invitation.txt %}
4

2 回答 2

7

您可以使用包括

例如: 邀请.txt

Dear {{ first_name|title }} {{ last_name|upper }},

Your inscription has bee accepted. Welcome!

邀请/body.txt

{% extends body.txt %}
{% block message %}
{% include "invitation.txt" %}
{% endblock %}

邀请/body.html

{% extends body.html %}
{% block message %}
{% include "invitation.txt" %}
{% endblock %}
于 2013-01-25T14:42:24.927 回答
6

您可以在上下文中设置变量并将其传递给extends模板标签。

在邀请.txt 中:

{% extends base %}
{% block message %}Dear {{ first_name|title }} {{ last_name|upper }},

Your inscription has been accepted. Welcome!
{% endblock %}

使用 context 渲染邀请.txt {'base': 'body.txt'},然后使用 context {'base': 'body.html'}

于 2013-01-25T14:47:14.100 回答