GET时在django rest框架的Response()中添加自定义数据?

时间:2018-02-12 10:29:41

标签: python django django-rest-framework response

我正在使用Django rest framework,我必须在Response()对象中添加自定义数据。

rsp = Response()
rsp['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(file)
rsp['X-Accel-Redirect'] = '/export/%s' % file

我想在dict

的数据部分添加自定义Response()

因此我尝试了这个,

data = {'length': 10}
rsp = Response(data)

data = {'length': 10}
rsp = Response()
rsp['data'] = data

但我收到的错误为'error:{'data'}'

帮助我理解为什么会出现这种情况以及如何在Response()

中添加自定义数据

2 个答案:

答案 0 :(得分:1)

设置rsp['data']时,它会尝试设置标题。这会产生错误,因为数据是字典而不是字符串。

相反,您应该在初始化响应时将响应数据作为第一个参数传递:

from rest_framework.response import Response

data = {'length': 10}
rsp = Response(data)
...

答案 1 :(得分:0)

data = {'length': 10}
return Response({'data': data})

如此;

response = {}
response['Content-Disposition'] = 'attachment; filename=%s' % os.path.basename(file)
response['X-Accel-Redirect'] = '/export/%s' % file
return Response(response)