J'utilise actuellement python_docx pour créer des documents Word en Python. Ce que j'essaie de réaliser, c'est que j'ai besoin de créer un fichier de document dans Django et ensuite le joindre à un courriel en utilisant django.core.mail sans avoir à sauvegarder le fichier sur le serveur. Je l'ai essayé de créer le fichier Word à l'aide de cette (prise d'une réponse aussi à StackOverflow):Créez un document Word, puis joignez-le au courriel Django
def generate(self, title, content):
document = Document()
docx_title=title
document.add_paragraph(content)
f = BytesIO()
document.save(f)
length = f.tell()
f.seek(0)
response = HttpResponse(
f.getvalue(),
content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document'
)
response['Content-Disposition'] = 'attachment; filename=' + docx_title
response['Content-Length'] = length
return response
Et voici où j'expérimenté et essayé de joindre la réponse à l'e-mail:
def sendmail(self, name,email,description,location):
message = EmailMessage('Custom Mail', 'Name: '+str(name)+'\nEmail: '+str(email)+'\nDescription: '+str(description)+'\nLocation: '+str(location), '[email protected]',to=['[email protected]'])
docattachment = generate('Test','CONTENT')
message.attach(docattachment.name,docattachment.read(),docattachment.content_type)
message.send()
Est-ce que j'essaie de réaliser même possible?
EDIT: Je le code de basé message.attach() à partir des paramètres de la joindre() dans django.core.mail
Bien sûr que c'est possible. Cependant, je ne vois pas le besoin de créer un objet 'HTTPResponse'. Avez-vous des erreurs avec ça? –
Oui. Beaucoup, y a-t-il une manière plus courte ou différente de faire ceci? – Jessie
Comment puis-je le faire? – Jessie