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
bafb3ec2
Commit
bafb3ec2
authored
Aug 31, 2017
by
Carlton Gibson
Committed by
GitHub
Aug 31, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #5375 from rpkilby/related-source-serialization
Fix default value handling for dotted sources
parents
7e3ba8b3
07258ca0
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
3 deletions
+13
-3
rest_framework/fields.py
+0
-3
tests/test_serializer.py
+13
-0
No files found.
rest_framework/fields.py
View file @
bafb3ec2
...
@@ -93,9 +93,6 @@ def get_attribute(instance, attrs):
...
@@ -93,9 +93,6 @@ def get_attribute(instance, attrs):
Also accepts either attribute lookup on objects or dictionary lookups.
Also accepts either attribute lookup on objects or dictionary lookups.
"""
"""
for
attr
in
attrs
:
for
attr
in
attrs
:
if
instance
is
None
:
# Break out early if we get `None` at any point in a nested lookup.
return
None
try
:
try
:
if
isinstance
(
instance
,
collections
.
Mapping
):
if
isinstance
(
instance
,
collections
.
Mapping
):
instance
=
instance
[
attr
]
instance
=
instance
[
attr
]
...
...
tests/test_serializer.py
View file @
bafb3ec2
...
@@ -411,6 +411,19 @@ class TestDefaultOutput:
...
@@ -411,6 +411,19 @@ class TestDefaultOutput:
serializer
=
self
.
Serializer
(
instance
)
serializer
=
self
.
Serializer
(
instance
)
assert
serializer
.
data
==
{
'has_default'
:
'def'
,
'has_default_callable'
:
'ghi'
,
'no_default'
:
'abc'
}
assert
serializer
.
data
==
{
'has_default'
:
'def'
,
'has_default_callable'
:
'ghi'
,
'no_default'
:
'abc'
}
def
test_default_for_source_source
(
self
):
"""
'default="something"' should be used when a traversed attribute is missing from input.
"""
class
Serializer
(
serializers
.
Serializer
):
traversed
=
serializers
.
CharField
(
default
=
'x'
,
source
=
'traversed.attr'
)
assert
Serializer
({})
.
data
==
{
'traversed'
:
'x'
}
assert
Serializer
({
'traversed'
:
{}})
.
data
==
{
'traversed'
:
'x'
}
assert
Serializer
({
'traversed'
:
None
})
.
data
==
{
'traversed'
:
'x'
}
assert
Serializer
({
'traversed'
:
{
'attr'
:
'abc'
}})
.
data
==
{
'traversed'
:
'abc'
}
class
TestCacheSerializerData
:
class
TestCacheSerializerData
:
def
test_cache_serializer_data
(
self
):
def
test_cache_serializer_data
(
self
):
...
...
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