Django – 导出到Excel并呈现给模板

改变问题:5/5/12 2:34 pm(PST)

我想知道是否可以从表单POST数据呈现模板,并在该模板中提供button/链接到模板中使用的相同POST数据的Excel电子表格。

我已经使用POST进行了Excel下载,并且使用POST呈现了一个模板,但是我希望在窗体的Submitbutton被按下时发生以下情况:1.将信息从视图发送到模板,使模板渲染信息,在模板中有一个button/链接,点击后会popup一个窗口询问用户是否打开/保存.XLS文件。

我用来做每个代码如下:
1在新的URL中渲染模板
return render_to_response('report/result.html', {long dictionary}, context_instance=RequestContext(request))

2使用模板导出为.XLS文件:
response2 = render_to_response('report/result.html', {long dictionary}, context_instance=RequestContext(request))
filename = "ToolboxReport%s.xls" % (datetime.now())
response2['Content-Disposition'] = 'attachment; filename='+filename
response2['Content-Type'] = 'application/vnd.ms-excel; charset=utf-8'
return response2

这里是我想要的订单:1.在选项页面:select选项,点击生成报告button2.在结果页面:显示信息,显示button/链接下载此信息为.XLS 3.(可选)点击下载button:打开/似乎保存选项下载与.XLS相同的信息

我似乎无法从“选项”页面获取POST数据,以便在结果页面和.XLS下载中使用。

我在表单上使用了两个不同的button,一个用于列出结果 ,另一个用于将它们导出为ex​​cel

在表单模板中:

 <input type="submit" name="list" value="List Results" /> <input type="submit" name="excel" value="Export to Excel" /> 

而在我看来function:

 # process your post data here... # end processing your post data if request.REQUEST.get('excel'): # excel button clicked result = '<your content result here>' response = http.HttpResponse(result.encode("<encoding>", 'ignore'), content_type='application/vnd.ms-excel;charset=<charset>') response['Content-Disposition'] = 'attachment; filename="reports.csv"' response['Expires'] = "Mon, 26 Jul 2013 05:00:00 GMT" return response elif request.REQUEST.get('list'): # List button clicked return render_to_response(<some render param here>, <some context>, <etc>) 

你只需要build立一个隐藏的input标签,包含你从前一篇文章中获得的信息和一个提交button。 添加一个额外的参数来告诉你想要下载的视图。