создание файла с помощью django для загрузки с помощью javascript/jQuery

Используя Django, я хочу сделать некоторые данные доступными для загрузки.

Мой вызов jQuery пока выглядит так:

$.getJSON("/get_data", 
            { users: users, study: "{{study.id}}" },
            function(json){
                alert('some data!');
            }
);

Это вызывает одно из моих представлений Django, которое, в свою очередь, генерирует некоторый 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(особенно тот факт, что я не могу выполнить close для jsonFile перед возвратом без запроса «ValueError :Операция ввода-вывода для закрытого файла» ).

Возможно, мне также следует использовать FileWrapper (, как в этом посте )., но я получаю одинаковые результаты с ним и без него.

Что касается Javascript, я не уверен, что должно войти в мою функцию обработчика успеха.

Любые указатели будут очень признательны!

6
задан Community 23 May 2017 в 10:29
поделиться