试图从Django提供csv文件

时间:2016-07-25 12:52:44

标签: django

我尝试提供(6KB)生成的文件。我可以在开发中完成但不在生产中:

我的观点是这样的:

def download_export_view(request, ref):
    selection = models.Selection.objects.get(id=ref, user=request.user)

    filename = ref + '.csv'
    filepath = os.path.join(EXPORTS_DIR, filename)
    wrapper = FileWrapper(open(filepath))

    response = StreamingHttpResponse(FileWrapper(open(filepath), 8192),
                                     content_type=mimetypes.guess_type(filepath)[0])
    response['Content-Disposition'] = 'attachment; filename="%s"' % (filename,)
    response['Content-Length'] = os.path.getsize(filepath)

    return response

我确信文件路径是正确的,因为我得到200状态并且没有异常(如FileNotFoundError),但是我的浏览器没有得到该文件。

1 个答案:

答案 0 :(得分:0)

对我来说,这个片段解决了这个问题。

 ...
response = HttpResponse(wrapper, content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename=%s' % (filename,)
wrapper.seek(0, os.SEEK_END)
response['Content-Length'] = wrapper.tell()
return response
 ...