2017-08-01 79 views
0

我有一个分页结果集,所以响应返回这样的:Django的REST框架:添加自定义字段为分页视图集中

{ 
"count": 944, 
"next": "http://api.visitorlando.teeny/consumer/listings/?page=3", 
"previous": "http://api.visitorlando.teeny/consumer/listings/", 
"results": [ 
{...}] 
} 

我需要另一个自定义字段添加到这样的回应:

{ 
"count": 944, 
"custom_field": "test", 
"next": "http://api.visitorlando.teeny/consumer/listings/?page=3", 
"previous": "http://api.visitorlando.teeny/consumer/listings/", 
"results": [ 
{...}] 
} 

而我在ViewSet中。我怎么能做到这一点?

+0

你可以在这里找到解决方案。 http://www.django-rest-framework.org/api-guide/pagination/#custom-pagination-styles – Devansh

回答

2

可以定义自定义PAGINATE类:

class CustomPagination(pagination.PageNumberPagination): 
    def get_paginated_response(self, data): 
     return Response({ 
      'links': { 
       'next': self.get_next_link(), 
       'previous': self.get_previous_link() 
      }, 
      'count': self.page.paginator.count, 
      'results': data, 
      "custom_field": "test", 
     }) 


class YourListView(generics.ListAPIView): 
    pagination_class = CustomPagination 

更多细节:custom-pagination

+0

不知道为什么我第一次没有在DRF文档中看到。欣赏你的时间。 – karmacode

相关问题