Прикрепление файла csv django
Привет, я сгенерировал csv и он правильно сохраняется в моем media dir. Вот как я создаю файл csv :
def export_to_csv_file(data, titles, file_name):
csv_file_address = os.path.join(settings.MEDIA_ROOT, file_name)
response = HttpResponse(content_type="text/csv")
response["Content-Disposition"] = "attachment; filename={}".format(file_name)
response.write("\ufeff".encode("utf8"))
with open(csv_file_address, "w+") as file:
writer = csv.DictWriter(file, fieldnames=titles, extrasaction="ignore")
headers = {title: _(title).replace("_", " ").title() for title in titles}
writer.writerow(headers)
for row in data:
writer.writerow(row)
return response, file
и вот как я использую эту функцию :
data_file = export_to_csv_file(
serializer.data,
list(self.get_serializer().Meta.headers),
file_name,
)
email_html_message = render_to_string(
"myhtml.html",
{"host": settings.SITE_URL, "file_url": data_file[1].name},
)
email = EmailMessage(
email_title,
email_html_message,
settings.EMAIL_FROM,
["mont@gmail.com"],
)
with open(data_file[1].name, "r") as file:
email.attach("attach_file", file.read(), "text/csv")
email.send()
когда я pdb файл, я получил следующее:
<_io.TextIOWrapper name='D:\\02_work\\Golf\\media\\spender_liste_1669015631.216596.csv' mode='r' encoding='cp1252'>
что я должен сделать, чтобы отправить этот файл csv как вложенный файл? Также я протестировал
with open(data_file[1].name, "w+") as file:
email.attach("attach_file", file.read(), "text/csv")
email.send()
но на этот раз получите
IndexError: list index out of range
в строке email.send()