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
ccf55120
Commit
ccf55120
authored
Mar 16, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clean up and comment `restore_object`
parent
56653111
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
4 deletions
+11
-4
rest_framework/serializers.py
+11
-4
No files found.
rest_framework/serializers.py
View file @
ccf55120
...
@@ -638,31 +638,38 @@ class ModelSerializer(Serializer):
...
@@ -638,31 +638,38 @@ class ModelSerializer(Serializer):
"""
"""
m2m_data
=
{}
m2m_data
=
{}
related_data
=
{}
related_data
=
{}
meta
=
self
.
opts
.
model
.
_meta
# Reverse fk relations
# Reverse fk
or one-to-one
relations
for
(
obj
,
model
)
in
self
.
opts
.
model
.
_
meta
.
get_all_related_objects_with_model
():
for
(
obj
,
model
)
in
meta
.
get_all_related_objects_with_model
():
field_name
=
obj
.
field
.
related_query_name
()
field_name
=
obj
.
field
.
related_query_name
()
if
field_name
in
attrs
:
if
field_name
in
attrs
:
related_data
[
field_name
]
=
attrs
.
pop
(
field_name
)
related_data
[
field_name
]
=
attrs
.
pop
(
field_name
)
# Reverse m2m relations
# Reverse m2m relations
for
(
obj
,
model
)
in
self
.
opts
.
model
.
_
meta
.
get_all_related_m2m_objects_with_model
():
for
(
obj
,
model
)
in
meta
.
get_all_related_m2m_objects_with_model
():
field_name
=
obj
.
field
.
related_query_name
()
field_name
=
obj
.
field
.
related_query_name
()
if
field_name
in
attrs
:
if
field_name
in
attrs
:
m2m_data
[
field_name
]
=
attrs
.
pop
(
field_name
)
m2m_data
[
field_name
]
=
attrs
.
pop
(
field_name
)
# Forward m2m relations
# Forward m2m relations
for
field
in
self
.
opts
.
model
.
_
meta
.
many_to_many
:
for
field
in
meta
.
many_to_many
:
if
field
.
name
in
attrs
:
if
field
.
name
in
attrs
:
m2m_data
[
field
.
name
]
=
attrs
.
pop
(
field
.
name
)
m2m_data
[
field
.
name
]
=
attrs
.
pop
(
field
.
name
)
# Update an existing instance...
if
instance
is
not
None
:
if
instance
is
not
None
:
for
key
,
val
in
attrs
.
items
():
for
key
,
val
in
attrs
.
items
():
setattr
(
instance
,
key
,
val
)
setattr
(
instance
,
key
,
val
)
# ...or create a new instance
else
:
else
:
instance
=
self
.
opts
.
model
(
**
attrs
)
instance
=
self
.
opts
.
model
(
**
attrs
)
# Any relations that cannot be set until we've
# saved the model get hidden away on these
# private attributes, so we can deal with them
# at the point of save.
instance
.
_related_data
=
related_data
instance
.
_related_data
=
related_data
instance
.
_m2m_data
=
m2m_data
instance
.
_m2m_data
=
m2m_data
...
...
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