django - 将模板语言存储在数据库中并让它呈现 django
问题描述
我正在使用模板到电子邮件插件(django-templated-mail)并通过上下文将电子邮件内容从数据库传递到模板,例如:
{{ context.emailtitle }}
{{ context.main_text }}
我想在 main_text 数据库条目中包含其他字段标签,以便我可以将用户名放在电子邮件中
Your name is {{ user.name }}
有没有办法可以在数据库文本中包含另一个字段名称以便呈现它,还是我在想这个错误?
我已经尝试了上述方法,输出是“你的名字是 {{ user.name }}”而不是“你的名字是约翰”
谢谢!
解决方案
没有直接映射,但没有什么可以避免您渲染此模板文本。例如:
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 响应中。
推荐阅读
- django - 为什么 Django 不显示对象的所有属性?
- kivy - Kivy,根据屏幕名称更改工具栏标题
- python - 如何找到我图像的最大轮廓?
- python - 在熊猫中分组后仅返回最大值
- python - 如何让我的变量脱离函数?
- swiftui - 如何在不同的堆栈之间水平对齐多个对象
- javascript - 为什么我的元素不使用相同的反应状态实例?
- asp.net - 在 ASP.NET 中下载 Excel 后执行代码
- python - ModuleNotFoundError:没有名为“account.apps.AccountConfigdjango”的模块;“account.apps”不是一个包
- python - 尝试 dm 禁止用户时引发禁止异常 (Discord.py)