誰もが知っている(またはすべきである)ように、Djangoのテンプレートシステムを使用して電子メールの本文をレンダリングできます。
def email(email, subject, template, context):
from django.core.mail import send_mail
from django.template import loader, Context
send_mail(subject, loader.get_template(template).render(Context(context)), 'from@domain.com', [email,])
これには1つの欠点があります。メールの件名と内容を編集するには、ビューとテンプレートの両方を編集する必要があります。管理者ユーザーにテンプレートへのアクセスを許可することは正当化できますが、生のPythonへのアクセスを許可するわけではありません。
本当にすばらしいのは、電子メールでブロックを指定し、電子メールを送信するときにそれらを個別に引き出すことができる場合です。
{% block subject %}This is my subject{% endblock %}
{% block plaintext %}My body{% endblock%}
{% block html %}My HTML body{% endblock%}
しかし、どうやってそれをしますか?一度に1つのブロックだけをレンダリングするにはどうすればよいですか?