ОК - я понял это на основе объединения нескольких вещей -
Прежде всего - мои требования:
- Я только хотел создать PDF-файлы в памяти - я не хочу, чтобы файлы зависали, поскольку они занимают место, и я не хочу, чтобы какие-то конфиденциальные данные оставались без защиты на сервере.
Итак - я выбрал функции ReportLab и Platypus для генерации моих документов. Я потратил на это достаточно времени, это легко. Итак, вот мой подход, который позволяет мне использовать DocTempates в ReportLab, позволяет мне использовать возможности электронной почты Django для отправки электронных писем.
Вот как я это делаю:
# Create the PDF object, using the buffer object as its "file."
buffer = StringIO()
doc = SimpleDocTemplate(buffer, pagesize=letter)
Document = []
# CRUFT PDF Data
doc.build(Document)
pdf = buffer.getvalue()
buffer.close()
email = EmailMessage('Hello', 'Body', 'from@from.com', ['to@to.com'])
email.attach('invoicex.pdf', pdf , 'application/pdf')
email.send()
Моя проблема от перехода от веб-генерации к генерации электронной почты заключалась в получении нужного объекта, который можно «прикрепить» к электронной почте. Создание буфера, затем захват данных из буфера сделали это для меня ...