是否可以将视图生成的pdf附加到django中的电子邮件中?
我正在使用第三方应用程序生成pdf 在我看来,我有以下创建Pdf的代码:是否可以将视图生成的pdf附加到django中的电子邮件中?,django,email,pdf,Django,Email,Pdf,我正在使用第三方应用程序生成pdf 在我看来,我有以下创建Pdf的代码: class artwork_catalog(PDFTemplateView): template_name = "someapp/sometemplate.html" def get_context_data(self, **kwargs): return super(artwork_catalog, self).get_context_data( pagesize
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:
url(
r"^mypdf.pdf$",
artwork_catalog.as_view()
),
因此,我可以在localhost:8000/mypdf.Pdf
访问我的Pdf。
现在我想通过电子邮件发送此Pdf作为附件。我创建了一个视图,但无法使其工作:
def order_catalog(request):
if request.method == 'POST':
form = OrderCatalogForm(request.POST)
if form.is_valid():
subject = 'Test'
from_email = 'Test@Test.com'
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})
有什么提示吗?向Manuel致以最诚挚的问候如果您仍然对解决方案感兴趣,请使用以下方法:
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')
}
)