Fix extra queries

This commit is contained in:
David Medina 2013-10-10 13:39:57 +02:00
parent ae73a191f9
commit 5117800fc5
2 changed files with 6 additions and 5 deletions

View File

@ -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

View File

@ -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)}