python - 在 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.name
and访问错误f.read()
。
如何获取我刚刚创建的文件以便附加并发送它?
解决方案
您可以使用来自 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()
推荐阅读
- flutter - 如何显示来自 Firestore (Flutter) 的文本数据
- javascript - 如何修复 React 网站中导致的 iPhone 视口错误
- c++ - 当我使用 MPI_Get 时,主要作业正常终止
- html - 我试图在角度做密码强度
- tableau-api - 刷新 Tableau 工作簿
- mysql - 如何在 Spring Framework 中使用 Select Distinct 和 Left Join 删除重复项
- binary - IP 数据包实际上是什么样子的?
- javascript - 在html中将pdf水平显示为图像
- java - 在Java中,如何根据其任何属性过滤类实例列表以在流或一行中获取另一个
- c - 如果给定数字是素数,则打印 YES,如果不在 C 中,则打印 NO