Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
2c634c0e
Commit
2c634c0e
authored
Feb 04, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use request.QUERY_PARAMS internally
(instead of request.GET)
parent
b9f1fbb5
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
9 additions
and
7 deletions
+9
-7
rest_framework/filters.py
+1
-1
rest_framework/negotiation.py
+2
-2
rest_framework/renderers.py
+1
-1
rest_framework/tests/negotiation.py
+5
-3
No files found.
rest_framework/filters.py
View file @
2c634c0e
...
@@ -54,6 +54,6 @@ class DjangoFilterBackend(BaseFilterBackend):
...
@@ -54,6 +54,6 @@ class DjangoFilterBackend(BaseFilterBackend):
filter_class
=
self
.
get_filter_class
(
view
)
filter_class
=
self
.
get_filter_class
(
view
)
if
filter_class
:
if
filter_class
:
return
filter_class
(
request
.
GET
,
queryset
=
queryset
)
return
filter_class
(
request
.
QUERY_PARAMS
,
queryset
=
queryset
)
return
queryset
return
queryset
rest_framework/negotiation.py
View file @
2c634c0e
...
@@ -33,7 +33,7 @@ class DefaultContentNegotiation(BaseContentNegotiation):
...
@@ -33,7 +33,7 @@ class DefaultContentNegotiation(BaseContentNegotiation):
"""
"""
# Allow URL style format override. eg. "?format=json
# Allow URL style format override. eg. "?format=json
format_query_param
=
self
.
settings
.
URL_FORMAT_OVERRIDE
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
:
if
format
:
renderers
=
self
.
filter_renderers
(
renderers
,
format
)
renderers
=
self
.
filter_renderers
(
renderers
,
format
)
...
@@ -80,5 +80,5 @@ class DefaultContentNegotiation(BaseContentNegotiation):
...
@@ -80,5 +80,5 @@ class DefaultContentNegotiation(BaseContentNegotiation):
Allows URL style accept override. eg. "?accept=application/json"
Allows URL style accept override. eg. "?accept=application/json"
"""
"""
header
=
request
.
META
.
get
(
'HTTP_ACCEPT'
,
'*/*'
)
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
(
','
)]
return
[
token
.
strip
()
for
token
in
header
.
split
(
','
)]
rest_framework/renderers.py
View file @
2c634c0e
...
@@ -88,7 +88,7 @@ class JSONPRenderer(JSONRenderer):
...
@@ -88,7 +88,7 @@ class JSONPRenderer(JSONRenderer):
Determine the name of the callback to wrap around the json output.
Determine the name of the callback to wrap around the json output.
"""
"""
request
=
renderer_context
.
get
(
'request'
,
None
)
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
)
return
params
.
get
(
self
.
callback_parameter
,
self
.
default_callback
)
def
render
(
self
,
data
,
accepted_media_type
=
None
,
renderer_context
=
None
):
def
render
(
self
,
data
,
accepted_media_type
=
None
,
renderer_context
=
None
):
...
...
rest_framework/tests/negotiation.py
View file @
2c634c0e
from
django.test
import
TestCase
from
django.test
import
TestCase
from
django.test.client
import
RequestFactory
from
django.test.client
import
RequestFactory
from
rest_framework.negotiation
import
DefaultContentNegotiation
from
rest_framework.negotiation
import
DefaultContentNegotiation
from
rest_framework.request
import
Request
factory
=
RequestFactory
()
factory
=
RequestFactory
()
...
@@ -22,16 +24,16 @@ class TestAcceptedMediaType(TestCase):
...
@@ -22,16 +24,16 @@ class TestAcceptedMediaType(TestCase):
return
self
.
negotiator
.
select_renderer
(
request
,
self
.
renderers
)
return
self
.
negotiator
.
select_renderer
(
request
,
self
.
renderers
)
def
test_client_without_accept_use_renderer
(
self
):
def
test_client_without_accept_use_renderer
(
self
):
request
=
factory
.
get
(
'/'
)
request
=
Request
(
factory
.
get
(
'/'
)
)
accepted_renderer
,
accepted_media_type
=
self
.
select_renderer
(
request
)
accepted_renderer
,
accepted_media_type
=
self
.
select_renderer
(
request
)
self
.
assertEquals
(
accepted_media_type
,
'application/json'
)
self
.
assertEquals
(
accepted_media_type
,
'application/json'
)
def
test_client_underspecifies_accept_use_renderer
(
self
):
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
)
accepted_renderer
,
accepted_media_type
=
self
.
select_renderer
(
request
)
self
.
assertEquals
(
accepted_media_type
,
'application/json'
)
self
.
assertEquals
(
accepted_media_type
,
'application/json'
)
def
test_client_overspecifies_accept_use_client
(
self
):
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
)
accepted_renderer
,
accepted_media_type
=
self
.
select_renderer
(
request
)
self
.
assertEquals
(
accepted_media_type
,
'application/json; indent=8'
)
self
.
assertEquals
(
accepted_media_type
,
'application/json; indent=8'
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment