Python 如何在Django中使用另一个视图中的视图中的报告?

Python 如何在Django中使用另一个视图中的视图中的报告?,python,django,Python,Django,我有一个表格,我上传了一个文件,并从中生成了一份报告。问题是,我还想把这份报告作为档案提供给大家下载。我想在报告中包含CSS和JS(我从布局继承的),但我真的不知道该怎么做。 到目前为止,我并没有在服务器端存储该文件(生成报告的依据),而是在处理完后将其删除 到目前为止,我能想到的唯一解决方案是:从我的归档生成视图,使用urllib发布到生成报告的表单,保存响应,然后重写指向样式表/JS文件的链接 有没有更简单的方法?有没有一种方法可以在客户端会话持续期间保留一些文件?您可以始终保留这些文件,并

我有一个表格,我上传了一个文件,并从中生成了一份报告。问题是,我还想把这份报告作为档案提供给大家下载。我想在报告中包含CSS和JS(我从布局继承的),但我真的不知道该怎么做。 到目前为止,我并没有在服务器端存储该文件(生成报告的依据),而是在处理完后将其删除

到目前为止,我能想到的唯一解决方案是:从我的归档生成视图,使用urllib发布到生成报告的表单,保存响应,然后重写指向样式表/JS文件的链接


有没有更简单的方法?有没有一种方法可以在客户端会话持续期间保留一些文件?

您可以始终保留这些文件,并使用cron作业删除会话已过期的文件

在视图中使用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
你可以找到你需要知道的一切


虽然这可能对您有效,但我怀疑您真正想要的是什么,也许您真正想要的是?

我如何知道哪些会话已过期?您必须将会话的引用存储在文件中我的报告基于HTML。但你的答案很有趣:)