Mad*_*bat 6 python django django-rest-framework
我正在将一组现有的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框架尽可能地做它的事情.
我认为您将不得不重写该list()方法。
我们首先得到原始响应。然后我们使用data属性设置响应的自定义表示,并使用此自定义表示返回响应。
class MyModelViewSet(viewsets.ModelViewSet):
def list(self, request, *args, **kwargs):
response = super(MyModelViewSet, self).list(request, *args, **kwargs) # call the original 'list'
response.data = {"site": response.data} # customize the response data
return response # return response with this custom representation
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4020 次 |
| 最近记录: |