我需要允许管理员用户在 html 中制作电子邮件模板,并且用户应该能够在需要的地方添加动态变量。模板将保存在数据库中。例如,
Dear {{user.first_name}},
Thanks for participating in our cooking class on {{cooking_class.date}}
然后,将有一个 cron 作业,它将发送电子邮件并填充动态变量。我有哪些选择?有没有 django 包呢?我正在使用 Django 1.4.3
谢谢
我实现了类似的东西,这就是我所做的:
渲染电子邮件,我使用了render_to_string,例如
from django.template.loader import render_to_string
from myproject.myemailapp.models import EmailTpl
email_tpl = EmailTpl.objects.get(...#criteria here)
# fetch the rest of your dynamic variables
rendered_tpl = render_to_string(email_tpl.user_entered_tpl, {
"user": user,
"cooking_class": cooking_class,
# ... and so on
})
或者,Django Packages 有一些你可能想要查看的包。如果您发回您决定的路线,那就太好了。
插件django-dbtemplates允许您将模板存储在数据库中,并且您可以在管理站点上公开 dbtemplate 应用程序以进行编辑。您可以设置中间件设置,以便数据库模板或其他位置的相同模板优先加载。
我们在一个项目中使用它来管理不同产品的模板,每个产品的数据库存储模板由 ForeignKey 链接。