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
a257b049
Commit
a257b049
authored
Dec 07, 2014
by
Xavier Ordoquy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix missing validated_data in `raise_errors_on_nested_writes` (#2221)
parent
71c49fea
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
5 deletions
+5
-5
rest_framework/serializers.py
+5
-5
No files found.
rest_framework/serializers.py
View file @
a257b049
...
@@ -561,7 +561,7 @@ class ListSerializer(BaseSerializer):
...
@@ -561,7 +561,7 @@ class ListSerializer(BaseSerializer):
# ModelSerializer & HyperlinkedModelSerializer
# ModelSerializer & HyperlinkedModelSerializer
# --------------------------------------------
# --------------------------------------------
def
raise_errors_on_nested_writes
(
method_name
,
serializer
):
def
raise_errors_on_nested_writes
(
method_name
,
serializer
,
validated_data
):
"""
"""
Give explicit errors when users attempt to pass writable nested data.
Give explicit errors when users attempt to pass writable nested data.
...
@@ -586,7 +586,7 @@ def raise_errors_on_nested_writes(method_name, serializer):
...
@@ -586,7 +586,7 @@ def raise_errors_on_nested_writes(method_name, serializer):
# ...
# ...
# profile = ProfileSerializer()
# profile = ProfileSerializer()
assert
not
any
(
assert
not
any
(
isinstance
(
field
,
BaseSerializer
)
and
(
key
in
validated_
attrs
)
isinstance
(
field
,
BaseSerializer
)
and
(
key
in
validated_
data
)
for
key
,
field
in
serializer
.
fields
.
items
()
for
key
,
field
in
serializer
.
fields
.
items
()
),
(
),
(
'The `.{method_name}()` method does not support writable nested'
'The `.{method_name}()` method does not support writable nested'
...
@@ -605,7 +605,7 @@ def raise_errors_on_nested_writes(method_name, serializer):
...
@@ -605,7 +605,7 @@ def raise_errors_on_nested_writes(method_name, serializer):
# ...
# ...
# address = serializer.CharField('profile.address')
# address = serializer.CharField('profile.address')
assert
not
any
(
assert
not
any
(
'.'
in
field
.
source
and
(
key
in
validated_
attrs
)
'.'
in
field
.
source
and
(
key
in
validated_
data
)
for
key
,
field
in
serializer
.
fields
.
items
()
for
key
,
field
in
serializer
.
fields
.
items
()
),
(
),
(
'The `.{method_name}()` method does not support writable dotted-source '
'The `.{method_name}()` method does not support writable dotted-source '
...
@@ -682,7 +682,7 @@ class ModelSerializer(Serializer):
...
@@ -682,7 +682,7 @@ class ModelSerializer(Serializer):
If you want to support writable nested relationships you'll need
If you want to support writable nested relationships you'll need
to write an explicit `.create()` method.
to write an explicit `.create()` method.
"""
"""
raise_errors_on_nested_writes
(
'create'
,
self
)
raise_errors_on_nested_writes
(
'create'
,
self
,
validated_data
)
ModelClass
=
self
.
Meta
.
model
ModelClass
=
self
.
Meta
.
model
...
@@ -722,7 +722,7 @@ class ModelSerializer(Serializer):
...
@@ -722,7 +722,7 @@ class ModelSerializer(Serializer):
return
instance
return
instance
def
update
(
self
,
instance
,
validated_data
):
def
update
(
self
,
instance
,
validated_data
):
raise_errors_on_nested_writes
(
'update'
,
self
)
raise_errors_on_nested_writes
(
'update'
,
self
,
validated_data
)
for
attr
,
value
in
validated_data
.
items
():
for
attr
,
value
in
validated_data
.
items
():
setattr
(
instance
,
attr
,
value
)
setattr
(
instance
,
attr
,
value
)
...
...
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