Я пытался присоединить буфер xls или буфер pdf к почтовой очереди Django, но не смог.
Я пытался использовать FileResponse или HttpResponse и конвертировать в объект файла Django, но это тоже не получается.
Вот что я пытался:
new_message = MailerMessage()
new_message.subject = "Test"
new_message.to_address = "test@gmail.com"
new_message.from_address = "noreply@gmail.com"
file_attachment = FileResponse('file_content_buffer', content_type='application/vnd.ms-excel')
new_message.add_attachment(file_attachment)
new_message.save()
Я получилошибка: 'FileResponse' object has no attribute 'file'
.Я знаю, что метод attach ожидает файловый объект, поскольку документация гласит: https://django -mail-queue.readthedocs.io / en / latest / creation.html # attachching-files .
Есть идеи?Спасибо.
Решение:
Немного взволнован, наблюдая за тем, что делает код почтовой очереди.Что вы думаете?
from mailqueue.models import MailerMessage, Attachment
new_message = MailerMessage()
new_message.subject = "Subject Mail"
new_message.to_address = 'test@gmail.com'
new_message.from_address = 'noreply@gmail.com'
new_message.save()
attachment = Attachment()
attachment.file_attachment.save('file.xlsx',ContentFile(excel_buffer),save=False)
attachment.email = new_message
attachment.original_filename = 'file.xlsx'
try:
new_attachment.save()
except Exception as e:
new_attachment.file_attachment.delete()