में एचटीएमएल ईमेल भेजना मेरी परियोजना में मैंने एक न्यूजलेटर फ़ीड जोड़ा है। लेकिन जब इस समारोह के साथ ईमेल भेजने की कोशिश कर: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()
उन टेम्पलेट का उपयोग कर:
//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>
और मॉडल:
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"),)
मैं हो रही है:
TemplateSyntaxError at /utils/newsletter_send/
Caught an exception while rendering: 'dict' object has no attribute 'autoescape'
में {{n.date}} text_email खाके में
हालांकि मेरी डिबग मैं उचित न्यूज़लेटर टेम्पलेट के लिए वस्तुओं भेज रहा है, साथ ही डिबग संदर्भ के रूप में दिखाता है:
context {'email': u'[email protected]', 'n': <Newsletter: Newsletter object>}
क्यों है क्या हो रहा है? इस त्रुटि के बारे में मुझे जो मिला है उससे यह किसी भी तरह से टेम्पलेट रेंडरर को खाली शब्दकोश भेजने के लिए जुड़ा हुआ है, लेकिन मेरा खाली नहीं है ...
में एचटीएमएल संदेशों 'डेटा' के रूप में नामित किया गया है कि अनुमति देने के लिए है: मैं ऐसा करने का एक और तरीका मिल गया है प्रश्न पोस्ट करते समय एक टाइपो या आपके पास कोड में भी ऐसा ही है ?? – Ashok
टाइपो, यह हर जगह तारीख है। डुनो हालांकि यह कैसे हो सकता है ... :) – crivateos
#django लॉग में मैंने पढ़ा है 'आप एक ऐसी वस्तु को पास कर रहे हैं जो एक संदर्भ वस्तु की अपेक्षा कर रहा था।' । इसे कैसे हल करें? – crivateos