当前位置: 代码迷 >> python >> 在GET时在Django rest框架的Response()中添加自定义数据?
  详细解决方案

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

热度:84   发布时间:2023-07-16 10:47:54.0

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

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

我想在此Response()的数据部分中添加自定义dict

因此我尝试了

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

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

但是我得到的错误是'error:{'data'}'

帮助我了解为什么会发生此行为以及如何在Response()添加自定义数据

设置rsp['data'] ,它正在尝试设置标头。 由于数据是字典,而不是字符串,因此会出现错误。

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

from rest_framework.response import Response

data = {'length': 10}
rsp = Response(data)
...
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)
  相关解决方案