1

我正在使用 Django 制作 CMS,所需的功能之一是让我的客户能够自己编辑自动发送的商业电子邮件(这些电子邮件是模板文件)。最好用代码来解释。这是我的一部分email_edit.html

{% block content %}
<form action="">
Subject: <input type="text">
Content: <textarea>{% include "email1.html" %}</textarea>
<input type="submit" value="Save">
</form>
{% endblock content %}

显然它不起作用。email1.html本身是一个模板文件,所以include标签尝试用上下文来渲染它,这不是我想要的。我想把里面的内容email1.html放在里面textarea让它可以编辑。我怎样才能做到这一点?

PS:我用的是 Jinja2

4

1 回答 1

3

如果您希望您的用户能够编辑模板,那么您应该将模板存储在数据库中。有一些包可以为你做这件事,但你自己做很容易

# in models.py
    class EmailTemplate(models.Model):
        name = models.CharField(max_length=50)
        template = models.TextField()

然后,当您需要发送电子邮件时,您可以像这样呈现它:

# in views.py
from django.template import Template, Context
#in your view     
    email_template = get_object_or_404(EmailTemplate, id = template_id) #You should know how to get this somewhere
    template = Template(email_template.template)
    email_body = template.render(Context({'my_context':'my_context'}))
于 2013-06-18T01:17:19.237 回答