Отправка файла 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

вы можете прикреплять имена файлов к электронной почте, таким образом вы можете отправлять вложения.

Вернуться на верх