您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 在REST框架中返回字典而不是数组

5b51 2022/1/14 8:23:34 python 字数 2338 阅读 603 来源 www.jb51.cc/python

我正在将一组现有的API从tastypie转换为REST框架.默认情况下,在执行列表API时,tastypie返回包含对象列表和元数据字典的字典,其中REST框架只返回一个对象数组.例如,我有一个名为Site的模型. Tastypie返回一个看起来像的字典 { 'meta': { ... some data here ...}, 'sit

概述

我正在将一组现有的API从tastypie转换为REST框架.认情况下,在执行列表API时,tastypie返回包含对象列表和元数据字典的字典,其中REST框架只返回一个对象数组.例如,我有一个名为Site的模型. Tastypie返回一个看起来像的字典

{
  "Meta": 
    { ... some data here ...},"site": 
    [
      {... first site...},{...second site...}
      ...
    ]
}

REST框架只返回数组

[
  {... first site...},{...second site...}
  ...
]

 

我们没有以任何方式使用tastypie中的元数据.在REST框架中更改返回值的最小侵入方法是什么?我可以覆盖list(),但我宁愿让REST框架尽可能地做它的事情.

我们首先得到原始回复.然后我们使用数据属性在响应上设置自定义表示,并使用此自定义表示返回响应.

class MyModelViewSet(viewsets.ModelViewSet):

    def list(self,request,*args,**kwargs):
        response = super(MyModelViewSet,self).list(request,**kwargs) # call the original 'list'
        response.data = {"site": response.data} # customize the response data
        return response # return response with this custom representation

总结

以上是编程之家为你收集整理的python – 在REST框架中返回字典而不是数组全部内容,希望文章能够帮你解决python – 在REST框架中返回字典而不是数组所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶