我正在使用jinja2在django中渲染模板:
模板设置:
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
]
},
},
{"BACKEND": "django.template.backends.jinja2.Jinja2", "DIRS": ["utils/"]},
]
呼叫代码:
html_template = get_template("email/contact/contact.html") #completes successfully - template definitely found
html_message = render_to_string(html_template, context)
出现错误:
AttributeError: 'Template' object has no attribute 'split'
谷歌搜索仅显示以下解决方案:
AttributeError:'NoneType'对象没有属性'split'
建议未找到模板。这里不是这种情况。
答案 0 :(得分:2)
render_to_string
使用模板名称,而不是对象。您无需致电get_template
。
html_message = render_to_string("email/contact/contact.html", context)