Django를 사용하여 다운로드 할 수있는 데이터를 만들고 싶습니다.javascript/jQuery로 다운로드 할 django 파일 생성
내 jQuery를 호출은 지금까지 다음과 같습니다
$.getJSON("/get_data",
{ users: users, study: "{{study.id}}" } ,
function(json){
alert('some data!');
}
);
이 차례로 어떤 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
그러나 이것은 작동하지 않습니다. 잠시 둘러보고 난 후에 자바 스크립트와 Python/Django 코드 양쪽에서 뭔가를 바꿔야한다고 생각합니다. 그러나 정확히 무엇이 명확하지 않은 것 같습니다.
파이썬의 주요 관심사는 cStringIO입니다 (특히 jsonFile에서 "ValueError : I/O 작업을 닫힌 파일에 대해 프롬프트하지 않고 돌아 오기 전에 close를 실행할 수 없다는 사실").
아마도 FileWrapper (이 post에서와 같이)를 사용해야하지만 어쨌든 동일한 결과가 있거나없는 동일한 결과를 얻습니다.
Javascript의 경우, 내 성공 처리기 기능에 무엇이 있어야하는지 잘 모르겠습니다.
모든 포인터가 크게 감사하겠습니다!
페이지에
views.py
에서
urls.py
또는 단순히 자바 스크립트 사용을위한 JSON 데이터를 보내시겠습니까? – xbtsw
전 - 전 "저장"브라우저 대화 상자가 나타나게하고 싶습니다. (제 이해에서 "Content-Disposition"헤더로 올바르게 수행해야합니까?) – arturomp
@amp, _ampload와는 반대로 브라우저 내 렌더링. 저장 파일을 강요하면 우리가 할 수있는 것처럼 보이지 않습니다 ... 예를 들어 모든 다운로드가 내 다운로드 디렉토리로 곧바로 들어갑니다. 구글 검색은 비슷한 진술을 공개 ... –