首页 > 解决方案 > 在 django 邮件中附加 queryset-to-csv 文件

问题描述

我正在尝试附加由库创建的这个 csv 文件django-queryset-csv请参阅文档),但是当我在收件箱中收到并打开文件时,它只是空的。

mail = EmailMessage(subject, text, from_email, [to])
with open(f'Orders for {date.today().strftime("%b-%d-%Y")}.csv', 'wb+') as f:
       write_csv(todays_orders, f)
       mail.attach(f.name, f.read())
mail.send()

正在正确创建 csv(它与 位于同一目录中manage.py),但不会附加。我认为这是因为我通过调用f.nameand访问错误f.read()

如何获取我刚刚创建的文件以便附加并发送它?

标签: pythondjangopython-3.xcsv

解决方案


您可以使用来自 EmailMessage 对象的mail.set_content()方法

mail = EmailMessage(subject, text, from_email, [to])
filename_csv = f'Orders for {date.today().strftime("%b-%d-%Y")}.csv'
with open(filename_csv, 'wb+') as f:
       write_csv(todays_orders, f)
       mail.set_content(f.read())

mail.send()

推荐阅读