mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 19:40:13 +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):
|
def paginate_queryset(self, queryset, page_size=None):
|
||||||
page = super(LinkPaginationMixin, self).paginate_queryset(
|
page = super(LinkPaginationMixin, self).paginate_queryset(
|
||||||
queryset, page_size)
|
queryset, page_size)
|
||||||
if page:
|
if page is not None:
|
||||||
page_ser = self.get_pagination_serializer(page)
|
page_ser = self.get_pagination_serializer(page)
|
||||||
self.headers.update(page_ser.get_link_header())
|
self.headers.update(page_ser.get_link_header())
|
||||||
|
self.object_list = page.object_list
|
||||||
return None # Don't use pagination serializer on response
|
return None # Don't use pagination serializer on response
|
||||||
|
|
|
@ -136,18 +136,18 @@ class PaginationSerializer(BasePaginationSerializer):
|
||||||
previous = PreviousPageField(source='*')
|
previous = PreviousPageField(source='*')
|
||||||
|
|
||||||
|
|
||||||
class LinkPaginationSerializer(PaginationSerializer):
|
class LinkPaginationSerializer(serializers.Serializer):
|
||||||
""" Pagination serializer in order to build Link header """
|
""" Pagination serializer in order to build Link header """
|
||||||
first = FirstPageField(source='*')
|
first = FirstPageField(source='*')
|
||||||
|
next = NextPageField(source='*')
|
||||||
|
previous = PreviousPageField(source='*')
|
||||||
last = LastPageField(source='*')
|
last = LastPageField(source='*')
|
||||||
|
|
||||||
relations = ('next', 'previous', 'first', 'last')
|
|
||||||
|
|
||||||
def get_link_header(self):
|
def get_link_header(self):
|
||||||
link_keader_items = [
|
link_keader_items = [
|
||||||
'<%s>; rel="%s"' % (link, rel)
|
'<%s>; rel="%s"' % (link, rel)
|
||||||
for rel, link in self.data.items()
|
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)}
|
return {'Link': ', '.join(link_keader_items)}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user