Отправка файла csv по электронной почте django
Я хочу прикрепить файл csv к электронному письму. Я написал метод get следующим образом :
def get(self, request, *args, **kwargs):
serializer = self.get_serializer(self.get_queryset(), many=True)
file_format = request.query_params.get("file_format", "csv")
if file_format == "csv":
data_file = export_to_csv(
serializer.data,
list(self.get_serializer().Meta.fields),
"students"),
)
return data_file
это API генерирует ссылку для загрузки csv... но когда я PDB файл data_file, я обнаруживаю, что это <HttpResponse status_code=200, "text/csv">
это функция export_to_csv :
def export_to_csv(data, titles, file_name):
#This function will export the data in the form of csv file
response = HttpResponse(content_type="text/csv")
response["Content-Disposition"] = "attachment; filename={}.csv".format(file_name)
writer = csv.DictWriter(
response,
fieldnames=titles,
extrasaction="ignore",
)
# create dict from translation of headers
headers = {title: _(title).replace("_", " ").title() for title in titles}
# write translated headers
writer.writerow(headers)
# write data to csv file
for row in data:
writer.writerow(row)
return response
Вопрос в том, как я могу прикрепить созданный csv к электронному письму
Обратитесь к этому, это аккуратная документация
https://docs.djangoproject.com/en/4.1/topics/email/#django.core.mail.EmailMessage
вы можете прикреплять имена файлов к электронной почте, таким образом вы можете отправлять вложения.