En mi proyecto he añadido un feed de noticias. Pero cuando se trata de enviar correos electrónicos con esta función:Envío de correo electrónico HTML en Django
def send(request):
template_html = 'static/newsletter.html'
template_text = 'static/newsletter.txt'
newsletters = Newsletter.objects.filter(sent=False)
subject = _(u"Newsletter")
adr = NewsletterEmails.objects.all()
for a in adr:
for n in newsletters:
to = a.email
from_email = settings.DEFAULT_FROM_EMAIL
subject = _(u"Newsletter Fandrive")
text = get_template(template_text)
html = get_template(template_html)
d = { 'n': n,'email': to }
text_content = text.render(d)
html_content = html.render(d)
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.send()
usando las plantillas:
//text
=================== Newsletter - {{ n.date }} ============
==========================================================
{{ n.title }}
==========================================================
{{ n.text }}
==========================================================
//html
<html>
<head>
</head>
<body>
<div style="">
<div style="">
<h1 style="">{{ n.title }} - {{n.date}}</h1>
<p style="">
{{ n.text }}
</p>
</div>
</div>
</body>
</html>
y modelos:
class Newsletter(models.Model):
title = models.CharField("title", blank=False, max_length=50)
text = models.TextField("text", blank=False)
sent = models.BooleanField("sent", default=False)
data = models.DateTimeField("creation date", auto_now_add=True, blank=False)
class NewsletterEmails(models.Model):
email = models.EmailField(_(u"e-mail address"),)
que estoy recibiendo:
TemplateSyntaxError at /utils/newsletter_send/
Caught an exception while rendering: 'dict' object has no attribute 'autoescape'
en {{}} n.date dentro text_email plantilla
Aunque mi depuración muestra que estoy enviando boletín adecuada se opone a la plantilla, así como del contexto de depuración:
context {'email': u'[email protected]', 'n': <Newsletter: Newsletter object>}
¿Por qué es eso sucediendo? De lo que he encontrado acerca de este error es de alguna manera conectado con el envío de diccionario vacío al procesador de plantilla, pero la mía no está vacío ...
en su campo de fecha definición de modelo se denomina como 'datos', es que un error al escribir la pregunta o la tienes así en el código también? – Ashok
error tipográfico, es una cita en todas partes. No sé cómo pudo haber pasado esto ... :) – crivateos
en #django logs He leído 'Estás pasando un diccionario a algo que estaba esperando un objeto Contextual'. . ¿Cómo resolver esto? – crivateos