          if not value.has_previous():
              return None
          page = value.previous_page_number()
          request = self.context.get('request')
          relative_url = '?%s=%d' % (self.page_field, page)
          if request:
              for field, value in request.QUERY_PARAMS.iteritems():
                  if field != self.page_field:
                      relative_url += '&%s=%s' % (field, value)
              return request.build_absolute_uri(relative_url)
          return relative_url
  
  
  class PaginationSerializerOptions(serializers.SerializerOptions):
      """
      An object that stores the options that may be provided to a
 
</s> remove         relative_url = '?%s=%d' % (self.page_field, page)
        if request:
            for field, value in request.QUERY_PARAMS.iteritems():
                if field != self.page_field:
                    relative_url += '&%s=%s' % (field, value)
            return request.build_absolute_uri(relative_url)
        return relative_url
 </s> add         url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page) </s> remove     filter_class = None
    filter_fields = None

    def get_filter_class(self):
        """
        Return the django-filters `FilterSet` used to filter the queryset.
        """
        if self.filter_class:
            return self.filter_class

        if self.filter_fields:
            class AutoFilterSet(django_filters.FilterSet):
                class Meta:
                    model = self.model
                fields = self.filter_fields
            return AutoFilterSet

        return None
 </s> add     filter_backend = api_settings.FILTER_BACKEND </s> remove         filter_class = self.get_filter_class()

        if filter_class:
            assert issubclass(filter_class.Meta.model, self.model), \
                "%s is not a subclass of %s" % (filter_class.Meta.model, self.model)
            return filter_class(self.request.GET, queryset=queryset)

        return queryset
 </s> add         if not self.filter_backend:
            return queryset
        backend = self.filter_backend()
        return backend.filter_queryset(self.request, queryset, self) </s> remove         expected_data = [ f for f in self.data if f['date'] > search_date and
                                                  f['decimal'] < search_decimal ]
 </s> add         expected_data = [f for f in self.data if f['date'] > search_date and
                                                  f['decimal'] < search_decimal]
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
          if not value.has_previous():
              return None
          page = value.previous_page_number()
          request = self.context.get('request')
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
        url = request and request.get_full_path() or ''
        return replace_query_param(url, self.page_field, page)
  
  
  class PaginationSerializerOptions(serializers.SerializerOptions):
      """
      An object that stores the options that may be provided to a
keep keep keep keep replace replace replace replace replace replace replace keep keep keep keep keep
 Make filtering optional, and pluggable. 
rest_framework/pagination.py