From 5117800fc5dedf8bc8e9a53ba070a300471d6e63 Mon Sep 17 00:00:00 2001 From: David Medina Date: Thu, 10 Oct 2013 13:39:57 +0200 Subject: [PATCH] Fix extra queries --- rest_framework/mixins.py | 3 ++- rest_framework/pagination.py | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) 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)}