Django下载返回



请回答一个简单的问题,我在视图中的POST返回一个json格式的字典

nested_data = {
'name': cleaned_data3['theme_name'],
'visualStyles': {
'barChart': {
'*': {
'general': [{
'responsive': cleaned_data2['responsive'],
'keepLayerOrder': cleaned_data2['maintain_layer_order']
}],
'legend': [{
'show': cleaned_data['show'],
'position': cleaned_data['position'],
'showTitle': cleaned_data['show_title'],
'labelColor': {
'solid': {
'color': '#666666'
}
},
'fontFamily': cleaned_data['font'],
'fontSize': cleaned_data['font_size']
}],
}
}
}
}

然后我使用返回格式化为json的代码

return JsonResponse(nested_data)

这显示了浏览器中呈现的json,但我如何下载此返回?在我的index.html中,提交按钮呈现视图中的返回,但我需要提交表单并将内容下载到.json文件中,需要在href?

<input type="submit" value="Submit">
<a href="{{ xxx }}" download>DOWNLOAD</a>

您需要将响应内容类型更改为application/force-download

response = JsonResponse(nested_data)
response['Content-Type'] = 'application/force-download'
return response

# or ...
return HttpResponse(
simplejson.dumps(nested_data), 
content_type='application/force-download'
)

您应该定义一个函数来在views.py或index.html中编写json。

with open(file_name, "wb") as f:
f.write(data)

如果你想在views.py中写它,你可以在js代码部分写下下面的几行。

csrfmiddlewaretoken: "{{ csrf_token }}"

最新更新