Один из способов для кода Python - сохранить файл csv с уникальным именем файла (возможно, сгенерированный некоторой комбинацией даты и имени пользователя) в «статическом» каталоге, а затем создать строку ссылки (как либоотносительный или абсолютный URL) с этим именем файла, чтобы использовать что-то вроде этого:
<a href="{{ csv_filename }}" download>Click here to download CSV file</a>
См. https://www.w3schools.com/tags/att_a_download.asp для ясного объяснения и демонстрации атрибута загрузки элемента.
Возможно, вам придется возиться с правами доступа к файлам, но я думаю, что Django может передать файл из статического каталога клиенту пользователя без лишних хлопот.Вы, вероятно, также хотите удалить файлы CSV старше, чем разумный период.CRON может сделать это, или это может быть частью рутины запуска.