我正在尝试向用户注册我的django webapp时发送邮件。尝试以下代码后,它将从模板中获取消息并以可读格式将其显示在用户电子邮件中。但它一直在显示;
<django.template.base.Template object at 0x033079D0>
而不是模板中的可读格式。我希望它以可读文本显示,而不是像上面那种格式。
查看:
Subject='Beta Invite'
message=loader.get_template('letter.html')
from_email='test@gmail.com'
def invite_me(request):
if request.method=="POST":
form=InviteForm(request.POST)
if form.is_valid():
form.save()
#get input data and send email to the user.
msg=EmailMessage(Subject,message,from_email,Invite.objects.values_list('email_address', flat=True))
msg.send()
return HttpResponse('Thanks For Inputting Your Email, Go Check Your Email For Our Invite!')
else:
return HttpResponse('Invalid Email Address')
else:
form=InviteForm()
return render_to_response('home.html',{'InviteForm':InviteForm},context_instance=RequestContext(request))
答案 0 :(得分:2)
您需要调用模板渲染方法。类似的东西:
msg=EmailMessage(Subject, message.render(Context()),
from_email, Invite.objects.values_list('email_address', flat=True))
注意:如果模板有“上下文”,则需要将其传递给Context()。
请参阅文档here。他们有一些很好的例子(几乎就是这个问题)