2017-02-24 5 views
2

私はthisを使用しています。私は私のビューのURLを以下ましビューで生成されたpdfをdjangoの電子メールメッセージに添付することはできますか?

class artwork_catalog(PDFTemplateView): 
    template_name = "someapp/sometemplate.html" 

    def get_context_data(self, **kwargs): 
     return super(artwork_catalog, self).get_context_data(
      pagesize="A4", 
      title="My Title" + datetime.datetime.now().strftime('%m/%Y'), 
      artworks=ArtWork.objects.filter(public=True).order_by('year'), 
      **kwargs 
     ) 

url(
     r"^mypdf.pdf$", 
     artwork_catalog.as_view() 
    ), 

だから私はlocalhost:8000/mypdf.pdfで私のPDFファイルにアクセスすることができ、私はPDFファイルを作成するため、このコードをした私の見解では

。 今、このPDFを添付ファイルとしてメールごとに送信したいと思います。私はビューを作成しましたが、動作させることはできません:

def order_catalog(request): 
    if request.method == 'POST': 
     form = OrderCatalogForm(request.POST) 
     if form.is_valid(): 
      subject = 'Test' 
      from_email = '[email protected]' 
      message = 'TESTTESTTESTTEST' 
      recipient = form.cleaned_data['email'] 
      pdf = artwork_catalog # here I'd like to insert my Pdf 
      try: 
       mail = EmailMessage(subject, message, from_email, [recipient]) 
       mail.attach("MyPdf.pdf", pdf, "application/pdf") 
       mail.send() 
      except: 
       return HttpResponse('Error') 
      return redirect('/somewhere/') 
    else: 
     form = OrderCatalogForm() 
    return render(request, 'someapp/order_catalog.html', {'form': form}) 

ヒント?あなたはまだ解決策によって、興味のある方宜しくマヌエル

答えて

0

、次はeasy_pdf.rendering.render_to_pdfを使用して、動作するはずです:

from easy_pdf.rendering import render_to_pdf 
... 
pdf = render_to_pdf(
     'someapp/sometemplate.html', 
     { 
      'pagesize': "A4", 
      'title': "My Title" + datetime.datetime.now().strftime('%m/%Y'), 
      'artworks' ArtWork.objects.filter(public=True).order_by('year') 
     } 
) 
関連する問題