Python 将查询集附加到django邮件中的csv文件

Python 将查询集附加到django邮件中的csv文件,python,django,python-3.x,csv,Python,Django,Python 3.x,Csv,我试图附加这个由库django queryset csv()创建的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.

我试图附加这个由库
django queryset csv
()创建的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
f.read()
访问它时出错了

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

您可以使用EmailMessage对象中的方法

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()

您是否尝试过使用mail.attach_文件('path_to_csv')替代?刚刚尝试过,但仍然是空的。。。非常奇怪,尝试在上下文管理器之外执行mail.attach,可能它是在CSV实际就绪之前进行附加的,但是在这种情况下,如何获取文件名?我再也不能给f打电话了。read别担心,都一样:)谢谢你的帮助!嘿,欢迎来到SO,谢谢你花时间发布答案。但建议您在回答中添加解释。