将模板语言存储在数据库中并呈现django

时间:2018-07-18 16:47:32

标签: django templates

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

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

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

Your name is {{ user.name }}

是否可以在数据库文本中包含另一个字段名称,以便呈现它,还是我在考虑这个错误?

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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响应中