4

我需要允许管理员用户在 html 中制作电子邮件模板,并且用户应该能够在需要的地方添加动态变量。模板将保存在数据库中。例如,

Dear {{user.first_name}},
        Thanks for participating in our cooking class on {{cooking_class.date}}

然后,将有一个 cron 作业,它将发送电子邮件并填充动态变量。我有哪些选择?有没有 django 包呢?我正在使用 Django 1.4.3

谢谢

4

2 回答 2

0

我实现了类似的东西,这就是我所做的:

  1. 创建一个应用程序,并注册一个模型来存储电子邮件
  2. 设置管理命令来处理电子邮件
  3. 通过django-chronograph管理 cron 作业

渲染电子邮件,我使用了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 有一些你可能想要查看的包。如果您发回您决定的路线,那就太好了。

于 2013-07-30T04:13:34.240 回答
0

插件django-dbtemplates允许您将模板存储在数据库中,并且您可以在管理站点上公开 dbtemplate 应用程序以进行编辑。您可以设置中间件设置,以便数据库模板或其他位置的相同模板优先加载。

我们在一个项目中使用它来管理不同产品的模板,每个产品的数据库存储模板由 ForeignKey 链接。

于 2019-02-11T17:36:12.623 回答