我有两个观点" ans_page"和"下载",其中" ans_page"生成一个文件(library.csv)到一个目录"输出",进一步" ans_page"渲染一个名为" ans.html"的html页面它显示了一个包含数据的表和一个位于表下方的按钮,用于从目录下载文件"输出"这是一个名为 FragBuild 的应用程序的一部分,按钮提供了一个超链接,该超链接与" Downloads"查看URL,我的期望是,如果有人点击下载按钮,它应该开始下载,但它显示错误,而不是像下面给出的那样:
查看
def Downloads(request):
file_path = os.path.join(os.path.split(os.path.abspath(__file__))[0],'output','library.csv')
file_wrapper = FileWrapper(file(file_path,'rb'))
file_mimetype = mimetypes.guess_type(file_path)
response = HttpResponse(file_wrapper, content_type=file_mimetype )
response['X-Sendfile'] = file_path
response['Content-Length'] = os.stat(file_path).st_size
response['Content-Disposition'] = 'attachment; filename=%s' % smart_str('library.csv')
和这样的网址:
url(r'^ans_page/Downloads$', views.Downloads, name='Downloads'),
html中的按钮可以启动下载,如下所示:
<div class="">
<button class="btn btn-primary" style="width:40; margin-bottom: 30px; margin-left: 300px "><a href="{% url 'Downloads' %}"> Download Peptide as CSV file </a> </button>
</div>
但是当我点击按钮开始下载时,它显示错误:
/ ans_page / Downloads的ValueError 视图FragBuild.views.Downloads没有返回HttpResponse对象。它改为返回None。
我怎么能解决这个问题呢?我经常挣扎。