jak wszyscy wiemy (lub powinien), można użyć systemu szablonów Django do renderowania ciał email:email szablonów w 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)), '[email protected]', [email,])
ta ma jedną wadę w mojej głowie: aby edytować temat i treść e-mail, musisz edytować zarówno widok, jak i szablon. Chociaż mogę uzasadnić przyznanie użytkownikom administracyjnym dostępu do szablonów, nie zapewniam im dostępu do surowego pythona!
Co byłoby naprawdę fajnie jest, jeśli można określić bloki w wiadomości e-mail i wyciągnąć je oddzielnie po wysłaniu e-mail:
{% block subject %}This is my subject{% endblock %}
{% block plaintext %}My body{% endblock%}
{% block html %}My HTML body{% endblock%}
Ale jak to zrobić? Jak wyglądałbyś renderując tylko jeden blok na raz?
Well & * $ # me. To działa. Rozważ dodanie dodatkowych pól do podstawy, aby umożliwić ustawienie ustawień from/from-name/reply-to. – Oli
Hah, robiłem to z trzema różnymi szablonami, którymi jest PITA. Zdecydowanie +1 ode mnie! –
Podoba mi się. Zawsze używałam tylko osobnych szablonów, które działają dobrze, ale jest o wiele przyjemniej, z którymi należy sobie poradzić (zwłaszcza, że ogólnie chcesz mieć ten sam kontekst dla wszystkich szablonów). –