Django Jinja 2-属性错误“环境”对象没有属性“get_source”

2hh7jdfx  于 2022-12-20  发布在  Go
关注(0)|答案(1)|浏览(137)

我有以下两行代码,它们都使用jinja 2来替换模板变量:

subject = Environment(loader=BaseLoader).from_string(template.email_subject).render(context)
body = Environment(loader=BaseLoader).from_string(template.email_template).render(bodyContext)

第一行运行良好,而第二行抛出Error:

AttributeError: 'Environment' object has no attribute 'get_source'

上下文字典包括所有必需的模板变量,jinja 2语法也应该是正确的。为了确保这一点,这里也提供了模板:
template.email_模板:

Hallo {{name}},
{%- include invoiceType+'/email_body.tpl' -%}
Viele Grüße
{{emailFooter}}

发票类型/电子邮件正文.tpl:

im Anhang findest du/findet ihr den Entwurf für die kommende Rechnung
über alle angefallenen Kosten bis zum {{invoiceDate -}}.

template.email主题:

Rechnung {{currentYear}}{{invoiceID}}
cbeh67ev

cbeh67ev1#

我能够通过将字符串写入文件并从文件加载它来解决这个问题。

template_dir = os.path.join(BASE_DIR, 'invoice\\templates')
        loader = FileSystemLoader(template_dir)
        environment = Environment(loader=loader)
        body = environment.get_template("email.tpl").render(bodyContext)

相关问题