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
fa6f0533
Commit
fa6f0533
authored
Oct 27, 2015
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3544 from dursk/nested-as-form-fields
Correctly handle False in NestedBoundField.as_form_field()
parents
f7ea4250
8aed3d48
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
1 deletions
+24
-1
rest_framework/utils/serializer_helpers.py
+1
-1
tests/test_bound_fields.py
+23
-0
No files found.
rest_framework/utils/serializer_helpers.py
View file @
fa6f0533
...
...
@@ -112,7 +112,7 @@ class NestedBoundField(BoundField):
if
isinstance
(
value
,
(
list
,
dict
)):
values
[
key
]
=
value
else
:
values
[
key
]
=
''
if
value
is
None
else
force_text
(
value
)
values
[
key
]
=
''
if
(
value
is
None
or
value
is
False
)
else
force_text
(
value
)
return
self
.
__class__
(
self
.
_field
,
values
,
self
.
errors
,
self
.
_prefix
)
...
...
tests/test_bound_fields.py
View file @
fa6f0533
...
...
@@ -45,6 +45,16 @@ class TestSimpleBoundField:
assert
serializer
[
'amount'
]
.
errors
is
None
assert
serializer
[
'amount'
]
.
name
==
'amount'
def
test_as_form_fields
(
self
):
class
ExampleSerializer
(
serializers
.
Serializer
):
bool_field
=
serializers
.
BooleanField
()
null_field
=
serializers
.
IntegerField
(
allow_null
=
True
)
serializer
=
ExampleSerializer
(
data
=
{
'bool_field'
:
False
,
'null_field'
:
None
})
assert
serializer
.
is_valid
()
assert
serializer
[
'bool_field'
]
.
as_form_field
()
.
value
==
''
assert
serializer
[
'null_field'
]
.
as_form_field
()
.
value
==
''
class
TestNestedBoundField
:
def
test_nested_empty_bound_field
(
self
):
...
...
@@ -67,3 +77,16 @@ class TestNestedBoundField:
assert
serializer
[
'nested'
][
'amount'
]
.
value
is
None
assert
serializer
[
'nested'
][
'amount'
]
.
errors
is
None
assert
serializer
[
'nested'
][
'amount'
]
.
name
==
'nested.amount'
def
test_as_form_fields
(
self
):
class
Nested
(
serializers
.
Serializer
):
bool_field
=
serializers
.
BooleanField
()
null_field
=
serializers
.
IntegerField
(
allow_null
=
True
)
class
ExampleSerializer
(
serializers
.
Serializer
):
nested
=
Nested
()
serializer
=
ExampleSerializer
(
data
=
{
'nested'
:
{
'bool_field'
:
False
,
'null_field'
:
None
}})
assert
serializer
.
is_valid
()
assert
serializer
[
'nested'
][
'bool_field'
]
.
as_form_field
()
.
value
==
''
assert
serializer
[
'nested'
][
'null_field'
]
.
as_form_field
()
.
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