From 948f652cf0ae3b52d48c8a1289521856744a910f Mon Sep 17 00:00:00 2001 From: Peter Fogg <pfogg@edx.org> Date: Wed, 22 Jul 2015 09:53:47 -0400 Subject: [PATCH] Remove unnecessary DB call in team pagination. --- lms/djangoapps/teams/views.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/teams/views.py b/lms/djangoapps/teams/views.py index c2efe1d87ec..f244a472bff 100644 --- a/lms/djangoapps/teams/views.py +++ b/lms/djangoapps/teams/views.py @@ -319,7 +319,14 @@ class TeamsListView(ExpandableFieldViewMixin, GenericAPIView): queryset = queryset.order_by(order_by_field) - page = self.paginate_queryset(queryset) + # TODO: Remove this on update to Django 1.8 + # Use the cached length of the queryset in order to avoid + # making an extra database call to get the number of items in + # the collection + paginator = self.paginator_class(queryset, self.get_paginate_by()) + paginator._count = len(queryset) # pylint: disable=protected-access + page = paginator.page(int(request.QUERY_PARAMS.get('page', 1))) + # end TODO serializer = self.get_pagination_serializer(page) serializer.context.update({'sort_order': order_by_input}) # pylint: disable=maybe-no-member return Response(serializer.data) # pylint: disable=maybe-no-member -- GitLab