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
0080bf8a
Commit
0080bf8a
authored
Apr 22, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #797 from maspwr/writable-nested-modelserializer
Don't use field when saving related data
parents
1148b25c
7e0a93f0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
19 deletions
+17
-19
rest_framework/serializers.py
+17
-19
No files found.
rest_framework/serializers.py
View file @
0080bf8a
...
...
@@ -460,7 +460,7 @@ class BaseSerializer(WritableField):
ret
.
append
(
self
.
from_native
(
item
,
None
))
errors
.
append
(
self
.
_errors
)
if
update
:
if
update
and
self
.
allow_add_remove
:
ret
.
_deleted
=
identity_to_objects
.
values
()
self
.
_errors
=
any
(
errors
)
and
errors
or
[]
...
...
@@ -514,7 +514,7 @@ class BaseSerializer(WritableField):
if
isinstance
(
self
.
object
,
list
):
[
self
.
save_object
(
item
,
**
kwargs
)
for
item
in
self
.
object
]
if
self
.
allow_add_remove
and
self
.
object
.
_deleted
:
if
self
.
object
.
_deleted
:
[
self
.
delete_object
(
item
)
for
item
in
self
.
object
.
_deleted
]
else
:
self
.
save_object
(
self
.
object
,
**
kwargs
)
...
...
@@ -779,24 +779,22 @@ class ModelSerializer(Serializer):
if
getattr
(
obj
,
'_related_data'
,
None
):
for
accessor_name
,
related
in
obj
.
_related_data
.
items
():
field
=
self
.
fields
.
get
(
accessor_name
,
None
)
if
isinstance
(
field
,
Serializer
):
if
field
.
many
:
# Nested reverse fk relationship
for
related_item
in
related
:
fk_field
=
obj
.
_meta
.
get_field_by_name
(
accessor_name
)[
0
]
.
field
.
name
setattr
(
related_item
,
fk_field
,
obj
)
self
.
save_object
(
related_item
)
# Delete any removed objects
if
field
.
allow_add_remove
and
related
.
_deleted
:
[
self
.
delete_object
(
item
)
for
item
in
related
.
_deleted
]
else
:
# Nested reverse one-one relationship
if
isinstance
(
related
,
RelationsList
):
# Nested reverse fk relationship
for
related_item
in
related
:
fk_field
=
obj
.
_meta
.
get_field_by_name
(
accessor_name
)[
0
]
.
field
.
name
setattr
(
related
,
fk_field
,
obj
)
self
.
save_object
(
related
)
setattr
(
related_item
,
fk_field
,
obj
)
self
.
save_object
(
related_item
)
# Delete any removed objects
if
related
.
_deleted
:
[
self
.
delete_object
(
item
)
for
item
in
related
.
_deleted
]
elif
isinstance
(
related
,
models
.
Model
):
# Nested reverse one-one relationship
fk_field
=
obj
.
_meta
.
get_field_by_name
(
accessor_name
)[
0
]
.
field
.
name
setattr
(
related
,
fk_field
,
obj
)
self
.
save_object
(
related
)
else
:
# Reverse FK or reverse one-one
setattr
(
obj
,
accessor_name
,
related
)
...
...
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