【发布时间】:2016-08-01 11:19:55
【问题描述】:
我需要将生成的文件下载作为 Django REST Framework 响应返回。我尝试了以下方法:
def retrieve(self, request, *args, **kwargs):
template = webodt.ODFTemplate('test.odt')
queryset = Pupils.objects.get(id=kwargs['pk'])
serializer = StudentSerializer(queryset)
context = dict(serializer.data)
document = template.render(Context(context))
doc = converter().convert(document, format='doc')
res = HttpResponse(
FileWrapper(doc),
content_type='application/msword'
)
res['Content-Disposition'] = u'attachment; filename="%s_%s.zip"' % (context[u'surname'], context[u'name'])
return res
但它返回一个 msword 文档为json。
如何让它开始作为文件下载?
【问题讨论】:
-
你的意思是说你已经创建了一个word文件,你需要将它传递给前端以便前端用户能够下载它?
-
@PiyushS.Wanare 完全正确
-
也许在文件生成之后,如果它可以从您的网络服务器公开访问(没有 Django 代码、授权等),您可以发送 302 重定向响应。
标签: python django ms-word django-rest-framework download