Используя Django, я хочу сделать некоторые данные доступными для загрузки.создание файла с django для загрузки с помощью javascript/jQuery
Мой 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 (особенно тот факт, что я не могу выполнить закрытие jsonFile перед возвратом без запроса операции ValueError: I/O в закрытом файле).
Возможно, я также должен использовать FileWrapper (как в этом post), но я получаю одинаковые результаты с ним и без него.
Для Javascript, я не уверен, что должно войти в мою функцию обработчика успеха.
Любые указатели были бы очень признательны!
Вы хотите, чтобы пользователю видеть диалог загрузки файла (за исключением, бегите отменить) или просто хотите отправить данные JSON для использования javascript? – xbtsw
Первый - я хотел бы сделать диалоговое окно «Сохранить» браузера (что, по моему мнению, должно произойти с заголовком «Content-Disposition», правильно?) – arturomp
@amp, что заставляет _download_ в отличие от рендеринг в браузере. Принуждение файла сохранения не является чем-то, что мы можем сделать ... например, у меня есть все мои загрузки, идущие прямо в мой каталог загрузки. Поисковые запросы Google показывают похожие заявления ... –