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
8b2f0cc3
Commit
8b2f0cc3
authored
Dec 13, 2013
by
Tom Christie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1291 from kevin-brown/issue_1101
Fix default values always being False for browsable API
parents
ca244ad6
90edcbf9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
1 deletions
+40
-1
rest_framework/fields.py
+1
-1
rest_framework/tests/test_serializer.py
+39
-0
No files found.
rest_framework/fields.py
View file @
8b2f0cc3
...
...
@@ -428,7 +428,7 @@ class BooleanField(WritableField):
def
field_from_native
(
self
,
data
,
files
,
field_name
,
into
):
# HTML checkboxes do not explicitly represent unchecked as `False`
# we deal with that here...
if
isinstance
(
data
,
QueryDict
):
if
isinstance
(
data
,
QueryDict
)
and
self
.
default
is
None
:
self
.
default
=
False
return
super
(
BooleanField
,
self
)
.
field_from_native
(
...
...
rest_framework/tests/test_serializer.py
View file @
8b2f0cc3
...
...
@@ -1743,3 +1743,42 @@ class TestSerializerTransformMethods(TestCase):
'b_renamed'
:
None
,
}
)
class
DefaultTrueBooleanModel
(
models
.
Model
):
cat
=
models
.
BooleanField
(
default
=
True
)
dog
=
models
.
BooleanField
(
default
=
False
)
class
SerializerDefaultTrueBoolean
(
TestCase
):
def
setUp
(
self
):
super
(
SerializerDefaultTrueBoolean
,
self
)
.
setUp
()
class
DefaultTrueBooleanSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
DefaultTrueBooleanModel
fields
=
(
'cat'
,
'dog'
)
self
.
default_true_boolean_serializer
=
DefaultTrueBooleanSerializer
def
test_enabled_as_false
(
self
):
serializer
=
self
.
default_true_boolean_serializer
(
data
=
{
'cat'
:
False
,
'dog'
:
False
})
self
.
assertEqual
(
serializer
.
is_valid
(),
True
)
self
.
assertEqual
(
serializer
.
data
[
'cat'
],
False
)
self
.
assertEqual
(
serializer
.
data
[
'dog'
],
False
)
def
test_enabled_as_true
(
self
):
serializer
=
self
.
default_true_boolean_serializer
(
data
=
{
'cat'
:
True
,
'dog'
:
True
})
self
.
assertEqual
(
serializer
.
is_valid
(),
True
)
self
.
assertEqual
(
serializer
.
data
[
'cat'
],
True
)
self
.
assertEqual
(
serializer
.
data
[
'dog'
],
True
)
def
test_enabled_partial
(
self
):
serializer
=
self
.
default_true_boolean_serializer
(
data
=
{
'cat'
:
False
},
partial
=
True
)
self
.
assertEqual
(
serializer
.
is_valid
(),
True
)
self
.
assertEqual
(
serializer
.
data
[
'cat'
],
False
)
self
.
assertEqual
(
serializer
.
data
[
'dog'
],
False
)
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