我有一个上传文件的表单,然后我生成一个报告。问题是,我还想将报告作为存档提供下载。我想以某种方式在报告中包含CSS和JS(我从我的布局继承),但我真的不知道如何去做。 到目前为止,我没有在服务器端存储文件(生成报告),我在完成后删除它。
到目前为止,我能想到的唯一解决方案是:从我的存档生成视图中,使用urllib发布到生成报告的表单,保存响应,然后只重写样式表/ JS文件的链接。
有更简单的方法吗?只要客户端的会话存在,有没有办法在服务器端保留一些文件?
答案 0 :(得分:1)
在您使用的视图中使用HttpResponse显示生成的报告,而不是使用urllib发布。如果您有某些内容
def report_view(request):
...
return render_to_response(request,....)
然后使用响应对象创建存档
def report_view(request):
...
archive_link = "/some/nice/url/to/the/archive"
response = render_to_response(request, ... { "archive-link" : archive_link})
store_archive(response)
return response
def store_archive(response):
# here you will need to find css/js files etc
# and bundle them in whatever type of archive you like
# then temporarily store that archive so it can be accessed by the archive_link
# you previously used in your view to allow for downloading
def report_archive_view(request):
# serve the temporarily stored archive, then delete it if you like
您可以找到有关HttpResponse in the Django docs的所有信息。
虽然这可能对你有用,但我怀疑你真正想要的是什么,也许你真正想要的是generate a pdf report using ReportLab?
答案 1 :(得分:0)
您可以随时保留文件,并拥有一个删除会话已过期文件的cron作业