リンクに記載されている方法を使用しています https://stackoverflow.com/a/8601118/2497977
import os
import mimetypes
from django.core.servers.basehttp import FileWrapper
def download_file(request):
the_file = '/some/file/name.png'
filename = os.path.basename(the_file)
response = HttpResponse(FileWrapper(open(the_file)),
content_type=mimetypes.guess_type(the_file)[0])
response['Content-Length'] = os.path.getsize(the_file)
response['Content-Disposition'] = "attachment; filename=%s" % filename
return response
最初にフォームでデータを取得し、送信時にデータを処理して「構成」を生成し、ファイルに書き出します。有効な場合は、ファイルをダウンロードとしてユーザーに返します。私の状況ではファイルがテキストであるという問題に遭遇していることを除いて、それはうまく機能します。そのため、ファイルがダウンロードされると、CR/LF のないテキストの塊として送信されます。
これに対処する方法について何か提案はありますか?