diff --git a/rest_framework/mixins.py b/rest_framework/mixins.py index 183c34552..86436c778 100644 --- a/rest_framework/mixins.py +++ b/rest_framework/mixins.py @@ -215,7 +215,8 @@ class LinkPaginationMixin(object): def paginate_queryset(self, queryset, page_size=None): page = super(LinkPaginationMixin, self).paginate_queryset( queryset, page_size) - if page: + if page is not None: page_ser = self.get_pagination_serializer(page) self.headers.update(page_ser.get_link_header()) + self.object_list = page.object_list return None # Don't use pagination serializer on response diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index d2d384d8d..b31d1f6b6 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -136,18 +136,18 @@ class PaginationSerializer(BasePaginationSerializer): previous = PreviousPageField(source='*') -class LinkPaginationSerializer(PaginationSerializer): +class LinkPaginationSerializer(serializers.Serializer): """ Pagination serializer in order to build Link header """ first = FirstPageField(source='*') + next = NextPageField(source='*') + previous = PreviousPageField(source='*') last = LastPageField(source='*') - relations = ('next', 'previous', 'first', 'last') - def get_link_header(self): link_keader_items = [ '<%s>; rel="%s"' % (link, rel) for rel, link in self.data.items() - if (rel in self.relations and link is not None) + if link is not None ] return {'Link': ', '.join(link_keader_items)}