diff options
| -rw-r--r-- | rest_framework/filters.py | 2 | ||||
| -rw-r--r-- | rest_framework/negotiation.py | 4 | ||||
| -rw-r--r-- | rest_framework/renderers.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/negotiation.py | 8 | 
4 files changed, 9 insertions, 7 deletions
diff --git a/rest_framework/filters.py b/rest_framework/filters.py index bcc87660..f7b5a1bc 100644 --- a/rest_framework/filters.py +++ b/rest_framework/filters.py @@ -54,6 +54,6 @@ class DjangoFilterBackend(BaseFilterBackend):          filter_class = self.get_filter_class(view)          if filter_class: -            return filter_class(request.GET, queryset=queryset) +            return filter_class(request.QUERY_PARAMS, queryset=queryset)          return queryset diff --git a/rest_framework/negotiation.py b/rest_framework/negotiation.py index ee2800a6..0a7b6db6 100644 --- a/rest_framework/negotiation.py +++ b/rest_framework/negotiation.py @@ -33,7 +33,7 @@ class DefaultContentNegotiation(BaseContentNegotiation):          """          # Allow URL style format override.  eg. "?format=json          format_query_param = self.settings.URL_FORMAT_OVERRIDE -        format = format_suffix or request.GET.get(format_query_param) +        format = format_suffix or request.QUERY_PARAMS.get(format_query_param)          if format:              renderers = self.filter_renderers(renderers, format) @@ -80,5 +80,5 @@ class DefaultContentNegotiation(BaseContentNegotiation):          Allows URL style accept override.  eg. "?accept=application/json"          """          header = request.META.get('HTTP_ACCEPT', '*/*') -        header = request.GET.get(self.settings.URL_ACCEPT_OVERRIDE, header) +        header = request.QUERY_PARAMS.get(self.settings.URL_ACCEPT_OVERRIDE, header)          return [token.strip() for token in header.split(',')] diff --git a/rest_framework/renderers.py b/rest_framework/renderers.py index b3ee0690..7eb6068a 100644 --- a/rest_framework/renderers.py +++ b/rest_framework/renderers.py @@ -88,7 +88,7 @@ class JSONPRenderer(JSONRenderer):          Determine the name of the callback to wrap around the json output.          """          request = renderer_context.get('request', None) -        params = request and request.GET or {} +        params = request and request.QUERY_PARAMS or {}          return params.get(self.callback_parameter, self.default_callback)      def render(self, data, accepted_media_type=None, renderer_context=None): diff --git a/rest_framework/tests/negotiation.py b/rest_framework/tests/negotiation.py index e06354ea..7706908b 100644 --- a/rest_framework/tests/negotiation.py +++ b/rest_framework/tests/negotiation.py @@ -1,6 +1,8 @@  from django.test import TestCase  from django.test.client import RequestFactory  from rest_framework.negotiation import DefaultContentNegotiation +from rest_framework.request import Request +  factory = RequestFactory() @@ -22,16 +24,16 @@ class TestAcceptedMediaType(TestCase):          return self.negotiator.select_renderer(request, self.renderers)      def test_client_without_accept_use_renderer(self): -        request = factory.get('/') +        request = Request(factory.get('/'))          accepted_renderer, accepted_media_type = self.select_renderer(request)          self.assertEquals(accepted_media_type, 'application/json')      def test_client_underspecifies_accept_use_renderer(self): -        request = factory.get('/', HTTP_ACCEPT='*/*') +        request = Request(factory.get('/', HTTP_ACCEPT='*/*'))          accepted_renderer, accepted_media_type = self.select_renderer(request)          self.assertEquals(accepted_media_type, 'application/json')      def test_client_overspecifies_accept_use_client(self): -        request = factory.get('/', HTTP_ACCEPT='application/json; indent=8') +        request = Request(factory.get('/', HTTP_ACCEPT='application/json; indent=8'))          accepted_renderer, accepted_media_type = self.select_renderer(request)          self.assertEquals(accepted_media_type, 'application/json; indent=8')  | 
