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
e9944f82
Commit
e9944f82
authored
Nov 22, 2012
by
jedavis83@gmail.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Keep Serializer.fields API consistent while caching values.
parent
e03bb9c2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
8 deletions
+8
-8
rest_framework/pagination.py
+1
-1
rest_framework/serializers.py
+7
-7
No files found.
rest_framework/pagination.py
View file @
e9944f82
...
...
@@ -62,7 +62,7 @@ class BasePaginationSerializer(serializers.Serializer):
super
(
BasePaginationSerializer
,
self
)
.
__init__
(
*
args
,
**
kwargs
)
results_field
=
self
.
results_field
object_serializer
=
self
.
opts
.
object_serializer_class
self
.
serialize_
fields
[
results_field
]
=
object_serializer
(
source
=
'object_list'
)
self
.
fields
[
results_field
]
=
object_serializer
(
source
=
'object_list'
)
def
to_native
(
self
,
obj
):
"""
...
...
rest_framework/serializers.py
View file @
e9944f82
...
...
@@ -60,7 +60,7 @@ def _get_declared_fields(bases, attrs):
# If this class is subclassing another Serializer, add that Serializer's
# fields. Note that we loop over the bases in *reverse*. This is necessary
# in order to the correct order of fields.
# in order to
maintain
the correct order of fields.
for
base
in
bases
[::
-
1
]:
if
hasattr
(
base
,
'base_fields'
):
fields
=
base
.
base_fields
.
items
()
+
fields
...
...
@@ -94,7 +94,6 @@ class BaseSerializer(Field):
def
__init__
(
self
,
instance
=
None
,
data
=
None
,
files
=
None
,
context
=
None
,
**
kwargs
):
super
(
BaseSerializer
,
self
)
.
__init__
(
**
kwargs
)
self
.
opts
=
self
.
_options_class
(
self
.
Meta
)
self
.
fields
=
copy
.
deepcopy
(
self
.
base_fields
)
self
.
parent
=
None
self
.
root
=
None
...
...
@@ -103,7 +102,7 @@ class BaseSerializer(Field):
self
.
init_data
=
data
self
.
init_files
=
files
self
.
object
=
instance
self
.
serialize_
fields
=
self
.
get_fields
()
self
.
fields
=
self
.
get_fields
()
self
.
_data
=
None
self
.
_files
=
None
...
...
@@ -128,7 +127,8 @@ class BaseSerializer(Field):
ret
=
SortedDict
()
# Get the explicitly declared fields
for
key
,
field
in
self
.
fields
.
items
():
base_fields
=
copy
.
deepcopy
(
self
.
base_fields
)
for
key
,
field
in
base_fields
.
items
():
ret
[
key
]
=
field
# Set up the field
field
.
initialize
(
parent
=
self
,
field_name
=
key
)
...
...
@@ -181,7 +181,7 @@ class BaseSerializer(Field):
ret
=
self
.
_dict_class
()
ret
.
fields
=
{}
for
field_name
,
field
in
self
.
serialize_
fields
.
items
():
for
field_name
,
field
in
self
.
fields
.
items
():
key
=
self
.
get_field_key
(
field_name
)
value
=
field
.
field_to_native
(
obj
,
field_name
)
ret
[
key
]
=
value
...
...
@@ -194,7 +194,7 @@ class BaseSerializer(Field):
Converts a dictionary of data into a dictionary of deserialized fields.
"""
reverted_data
=
{}
for
field_name
,
field
in
self
.
serialize_
fields
.
items
():
for
field_name
,
field
in
self
.
fields
.
items
():
try
:
field
.
field_from_native
(
data
,
files
,
field_name
,
reverted_data
)
except
ValidationError
as
err
:
...
...
@@ -206,7 +206,7 @@ class BaseSerializer(Field):
"""
Run `validate_<fieldname>()` and `validate()` methods on the serializer
"""
for
field_name
,
field
in
self
.
serialize_
fields
.
items
():
for
field_name
,
field
in
self
.
fields
.
items
():
try
:
validate_method
=
getattr
(
self
,
'validate_
%
s'
%
field_name
,
None
)
if
validate_method
:
...
...
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