首页 > 解决方案 > 将模板语言存储在数据库中并让它呈现 django

问题描述

我正在使用模板到电子邮件插件(django-templated-mail)并通过上下文将电子邮件内容从数据库传递到模板,例如:

{{ context.emailtitle }}
{{ context.main_text }}

我想在 main_text 数据库条目中包含其他字段标签,以便我可以将用户名放在电子邮件中

Your name is {{ user.name }}

有没有办法可以在数据库文本中包含另一个字段名称以便呈现它,还是我在想这个错误?

我已经尝试了上述方法,输出是“你的名字是 {{ user.name }}”而不是“你的名字是约翰”

谢谢!

标签: djangotemplates

解决方案


没有直接映射,但没有什么可以避免您渲染此模板文本。例如:

from django.template import Template, Context

template_text = 'Your name is {{ user.name }}'
user = Users.objects.first()  # we pick some user for demo purposes
template = Template(template_text)
ctx = Context({'user': user})
result = template.render(ctx)  # result is 'Your name is Cam'

因此,我们可以自己在这里进行渲染过程,从而将渲染的输出传达给一些工具、响应等。

如果执行调用,这或多或少会发生这种情况render_to_response:从文件中加载模板文本,然后使用上下文和请求呈现模板,并将输出包装在 HTTP 响应中。


推荐阅读