下载
我在此处关注Django文档以创建一个CSV文件。在我的urls.py中,我有 url(r'^reports/csv_list_report/$', 'csv_list_report')
。
我希望用户在单击下载按钮时下载CSV文件。所以我在这里使用jQuery:
$('#download_button').click(function(){
$.get('/reports/csv_list_report/');
});
我可以在firebug中看到响应,但是浏览器没有下载文件。
这是我的观点:
def csv_list_report(request):
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename="reports.csv"'
writer = csv.writer(response)
writer.writerow(['First row', 'Foo', 'Bar', 'Baz'])
writer.writerow(['Second row', 'A', 'B', 'C', '"Testing"', "Here's a quote"])
return response
所以也许在获得之后,我需要写一些东西来处理成功的响应?四处搜索,关于如何创建CSV文件有很多答案,但没有找到任何答案,包括需要做什么来处理响应。
您无法通过ajax下载浏览器(这就是JQuery使用$.get
时正在做的事情)。您必须直接同步HTTP连接。
而不是$.get
,请尝试以下操作:
location.replace('/reports/csv_list_report/');
相关:强制通过JS或查询