2017-08-01 60 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

相關問題