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
8b0561c5
Commit
8b0561c5
authored
Nov 20, 2012
by
jedavis83@gmail.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cache all fields on serializer init, not just default fields.
parent
3268c673
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
10 deletions
+5
-10
rest_framework/serializers.py
+5
-10
No files found.
rest_framework/serializers.py
View file @
8b0561c5
...
...
@@ -103,7 +103,7 @@ class BaseSerializer(Field):
self
.
init_data
=
data
self
.
init_files
=
files
self
.
object
=
instance
self
.
default_fields
=
self
.
get_defaul
t_fields
()
self
.
serialize_fields
=
self
.
ge
t_fields
()
self
.
_data
=
None
self
.
_files
=
None
...
...
@@ -134,7 +134,7 @@ class BaseSerializer(Field):
field
.
initialize
(
parent
=
self
,
field_name
=
key
)
# Add in the default fields
for
key
,
val
in
self
.
default_fields
.
items
():
for
key
,
val
in
self
.
get_default_fields
()
.
items
():
if
key
not
in
ret
:
ret
[
key
]
=
val
...
...
@@ -181,8 +181,7 @@ class BaseSerializer(Field):
ret
=
self
.
_dict_class
()
ret
.
fields
=
{}
fields
=
self
.
get_fields
()
for
field_name
,
field
in
fields
.
items
():
for
field_name
,
field
in
self
.
serialize_fields
.
items
():
key
=
self
.
get_field_key
(
field_name
)
value
=
field
.
field_to_native
(
obj
,
field_name
)
ret
[
key
]
=
value
...
...
@@ -194,9 +193,8 @@ class BaseSerializer(Field):
Core of deserialization, together with `restore_object`.
Converts a dictionary of data into a dictionary of deserialized fields.
"""
fields
=
self
.
get_fields
()
reverted_data
=
{}
for
field_name
,
field
in
fields
.
items
():
for
field_name
,
field
in
self
.
serialize_
fields
.
items
():
try
:
field
.
field_from_native
(
data
,
files
,
field_name
,
reverted_data
)
except
ValidationError
as
err
:
...
...
@@ -208,10 +206,7 @@ class BaseSerializer(Field):
"""
Run `validate_<fieldname>()` and `validate()` methods on the serializer
"""
# TODO: refactor this so we're not determining the fields again
fields
=
self
.
get_fields
()
for
field_name
,
field
in
fields
.
items
():
for
field_name
,
field
in
self
.
serialize_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