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
e4ce57b8
Commit
e4ce57b8
authored
Jul 11, 2011
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #45 from sebpiq/master
Clean overloads + fixed a bug in serializers
parents
3b2e70dd
11ee3857
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
10 deletions
+11
-10
djangorestframework/mixins.py
+5
-4
djangorestframework/serializer.py
+6
-6
No files found.
djangorestframework/mixins.py
View file @
e4ce57b8
...
@@ -161,17 +161,18 @@ class RequestMixin(object):
...
@@ -161,17 +161,18 @@ class RequestMixin(object):
return
return
# At this point we're committed to parsing the request as form data.
# At this point we're committed to parsing the request as form data.
self
.
_data
=
data
=
self
.
request
.
POST
self
.
_data
=
data
=
self
.
request
.
POST
.
copy
()
self
.
_files
=
self
.
request
.
FILES
self
.
_files
=
self
.
request
.
FILES
# Method overloading - change the method and remove the param from the content.
# Method overloading - change the method and remove the param from the content.
if
self
.
_METHOD_PARAM
in
data
:
if
self
.
_METHOD_PARAM
in
data
:
self
.
_method
=
data
[
self
.
_METHOD_PARAM
]
.
upper
()
# NOTE: unlike `get`, `pop` on a `QueryDict` seems to return a list of values.
self
.
_method
=
self
.
_data
.
pop
(
self
.
_METHOD_PARAM
)[
0
]
.
upper
()
# Content overloading - modify the content type, and re-parse.
# Content overloading - modify the content type, and re-parse.
if
self
.
_CONTENT_PARAM
in
data
and
self
.
_CONTENTTYPE_PARAM
in
data
:
if
self
.
_CONTENT_PARAM
in
data
and
self
.
_CONTENTTYPE_PARAM
in
data
:
self
.
_content_type
=
data
[
self
.
_CONTENTTYPE_PARAM
]
self
.
_content_type
=
self
.
_data
.
pop
(
self
.
_CONTENTTYPE_PARAM
)[
0
]
stream
=
StringIO
(
data
[
self
.
_CONTENT_PARAM
])
stream
=
StringIO
(
self
.
_data
.
pop
(
self
.
_CONTENT_PARAM
)[
0
])
(
self
.
_data
,
self
.
_files
)
=
self
.
_parse
(
stream
,
self
.
_content_type
)
(
self
.
_data
,
self
.
_files
)
=
self
.
_parse
(
stream
,
self
.
_content_type
)
...
...
djangorestframework/serializer.py
View file @
e4ce57b8
...
@@ -228,16 +228,16 @@ class Serializer(object):
...
@@ -228,16 +228,16 @@ class Serializer(object):
# serialize each required field
# serialize each required field
for
fname
in
fields
:
for
fname
in
fields
:
if
fname
in
instance
:
if
hasattr
(
self
,
smart_str
(
fname
)):
# finally check for a key 'fname' on the instance
# check first for a method 'fname' on self first
obj
=
instance
[
fname
]
elif
hasattr
(
self
,
smart_str
(
fname
)):
# check for a method 'fname' on self first
meth
=
getattr
(
self
,
fname
)
meth
=
getattr
(
self
,
fname
)
if
inspect
.
ismethod
(
meth
)
and
len
(
inspect
.
getargspec
(
meth
)[
0
])
==
2
:
if
inspect
.
ismethod
(
meth
)
and
len
(
inspect
.
getargspec
(
meth
)[
0
])
==
2
:
obj
=
meth
(
instance
)
obj
=
meth
(
instance
)
elif
hasattr
(
instance
,
'__contains__'
)
and
fname
in
instance
:
# check for a key 'fname' on the instance
obj
=
instance
[
fname
]
elif
hasattr
(
instance
,
smart_str
(
fname
)):
elif
hasattr
(
instance
,
smart_str
(
fname
)):
#
now
check for an attribute 'fname' on the instance
#
finally
check for an attribute 'fname' on the instance
obj
=
getattr
(
instance
,
fname
)
obj
=
getattr
(
instance
,
fname
)
else
:
else
:
continue
continue
...
...
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