在Django模板中显示可读文本时出错

时间:2012-10-02 22:02:04

标签: python django

我正在尝试向用户注册我的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))

1 个答案:

答案 0 :(得分:2)

您需要调用模板渲染方法。类似的东西:

msg=EmailMessage(Subject, message.render(Context()),
    from_email, Invite.objects.values_list('email_address', flat=True))

注意:如果模板有“上下文”,则需要将其传递给Context()。

请参阅文档here。他们有一些很好的例子(几乎就是这个问题)