Django を使用して、一部のデータをダウンロードできるようにしたいと考えています。
これまでのところ、私のjQuery呼び出しは次のようになります。
$.getJSON("/get_data",
{ users: users, study: "{{study.id}}" } ,
function(json){
alert('some data!');
}
);
これにより、私の Django ビューの 1 つが呼び出され、JSON が生成され、ダウンロードするファイルにその JSON テキストが作成されます。
jsonResponse = json.dumps(data, cls=DjangoJSONEncoder)
jsonFile = cStringIO.StringIO()
jsonFile.write(jsonResponse)
response = HttpResponse(jsonFile, mimetype='application/json')
response['Content-Disposition'] = 'attachment; filename=data.txt'
return response
ただし、これは機能しません。しばらく見回した後、両端 (Javascript と python/Django コード) で何かを変更する必要があると思いますが、正確に何を変更するかは不明です。
Python の場合、私の主な関心事はcStringIOの使用です(特に、「ValueError: I/O operation on closed file」というメッセージを表示せずに戻る前に jsonFile で close を実行できないという事実)。
たぶん、FileWrapper も使用する必要があるかもしれませんが (この投稿のように)、それを使用しても使用しなくても同じ結果が得られます。
Javascript の場合、成功ハンドラー関数に何を入れるべきかわかりません。
どんなポインタでも大歓迎です!