我试图通过电子邮件发送PDF:
**Expected Output**
BusName | tripFrom | tripTo | Departure | Arrival
Sprinter 101 104 1:00:00 2:30:00
VVIP Bus 101 104 2:30:00 3:15:00
在我的观看:
中def render_to_pdf(template_src, context_dict={}):
template = get_template(template_src)
html = template.render(context_dict)
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return pdf
return None
我收到此错误:
期望str,bytes或os.PathLike对象,而不是pisaContext
如何获得str或字节而不是pdf = render_to_pdf('expenses/pdf_report.html', data)
mail.attach_file(pdf)
mail.send()
?
答案 0 :(得分:1)
尝试以下代码。未经测试但应该可以使用
from django.template.loader import render_to_string
def render_to_pdf(template_src, context_dict={}):
html = render_to_string(template_src, context_dict)
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return result.getvalue()
return None
参考:https://github.com/codingforentrepreneurs/Guides/blob/master/all/Render_to_PDF_in_Django.md