mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 11:30:12 +03:00
Fix extra queries
This commit is contained in:
parent
ae73a191f9
commit
5117800fc5
|
@ -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
|
||||
|
|
|
@ -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)}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user