我有一个模板,我从Web服务中呈现响应。
def XMLResponseView9request):
...
with open(archivo_request,"r") as archivo:
request_data = archivo.read()
headers = {'Content-type':'text/xml'}
data_response = requests.post(target_url, data=request_data, headers=headers)
jdato = xmltodict.parse(data_response.content)
data_xml = data_response.text
data_template = json.dumps(jdato)
return render_to_response('response.html',
{'data':data_template,'dataxml':data_xml},
context_instance=RequestContext(request))
除了渲染响应之外,我想将响应作为要下载的文件(xml或txt)提供。
我尝试将响应作为文本传递(变量:data_xml)并通过简单的javascript函数提供,但文件为空或只有一行“[object Object]”。
可以将响应作为DJANGO视图中的文件提供,而不是将文本传递给模板。
提前致谢
答案 0 :(得分:0)
要使文件可下载,您只需更改一个HTTP标头,Content-Disposition。
def some_view(response):
xmlFile = open(pathout, 'r')
myfile = FileWrapper(xmlFile)
response = HttpResponse(myfile, content_type='application/xml')
response['Content-Disposition'] = 'attachment; filename='+filename
return response