To generate file to download with Python Django, we can use the HttpResponse class.
For instance, we write
from django.http import HttpResponse
from wsgiref.util import FileWrapper
response = HttpResponse(FileWrapper(myfile.getvalue()), content_type='application/zip')
response['Content-Disposition'] = 'attachment; filename=myfile.zip'
return response
to generate the download file in our view by creating a HttpResponse object.
We call myfile.getvalue() to get the file and wrap it with FileWrapper where myfile is a Django File object.
And then we set the Content-Disposition header with
response['Content-Disposition'] = 'attachment; filename=myfile.zip'
And finally, we return the response.