1

私は Django を使用して CMS を作成しています。望ましい機能の 1 つは、クライアントが自動送信された商用メールを自分で編集できるようにすることです (これらのメールはテンプレート ファイルです)。コードで説明する方が適切です。これが私の一部です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 に答える