Django Jinja2 - AttributeError: объект 'Environment' не имеет атрибута 'get_source'
У меня есть следующие две строки кода. Обе используют jinja2 для замены переменных шаблона:
subject = Environment(loader=BaseLoader).from_string(template.email_subject).render(context)
body = Environment(loader=BaseLoader).from_string(template.email_template).render(bodyContext)
Первая строка работает нормально, а вторая выдает ошибку:
AttributeError: 'Environment' object has no attribute 'get_source'
Контекстный словарь включает все необходимые переменные шаблона, и синтаксис jinja2 также должен быть правильным. Чтобы убедиться в этом, вот шаблоны:
template.email_template:
Hallo {{name}},
{%- include invoiceType+'/email_body.tpl' -%}
Viele Grüße
{{emailFooter}}
invoiceType/email_body.tpl:
im Anhang findest du/findet ihr den Entwurf für die kommende Rechnung
über alle angefallenen Kosten bis zum {{invoiceDate -}}.
template.email_subject:
Rechnung {{currentYear}}{{invoiceID}}
Я смог решить проблему, записав строку в файл и загрузив ее из файла.
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)