Skip to content

Commit 372acbc

Browse files
committed
Merge branch 'master' of github.com:tomchristie/django-rest-framework
2 parents 144cff9 + fa6f053 commit 372acbc

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

rest_framework/utils/serializer_helpers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def as_form_field(self):
112112
if isinstance(value, (list, dict)):
113113
values[key] = value
114114
else:
115-
values[key] = '' if value is None else force_text(value)
115+
values[key] = '' if (value is None or value is False) else force_text(value)
116116
return self.__class__(self._field, values, self.errors, self._prefix)
117117

118118

tests/test_bound_fields.py

+23
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ class ExampleSerializer(serializers.Serializer):
4545
assert serializer['amount'].errors is None
4646
assert serializer['amount'].name == 'amount'
4747

48+
def test_as_form_fields(self):
49+
class ExampleSerializer(serializers.Serializer):
50+
bool_field = serializers.BooleanField()
51+
null_field = serializers.IntegerField(allow_null=True)
52+
53+
serializer = ExampleSerializer(data={'bool_field': False, 'null_field': None})
54+
assert serializer.is_valid()
55+
assert serializer['bool_field'].as_form_field().value == ''
56+
assert serializer['null_field'].as_form_field().value == ''
57+
4858

4959
class TestNestedBoundField:
5060
def test_nested_empty_bound_field(self):
@@ -67,3 +77,16 @@ class ExampleSerializer(serializers.Serializer):
6777
assert serializer['nested']['amount'].value is None
6878
assert serializer['nested']['amount'].errors is None
6979
assert serializer['nested']['amount'].name == 'nested.amount'
80+
81+
def test_as_form_fields(self):
82+
class Nested(serializers.Serializer):
83+
bool_field = serializers.BooleanField()
84+
null_field = serializers.IntegerField(allow_null=True)
85+
86+
class ExampleSerializer(serializers.Serializer):
87+
nested = Nested()
88+
89+
serializer = ExampleSerializer(data={'nested': {'bool_field': False, 'null_field': None}})
90+
assert serializer.is_valid()
91+
assert serializer['nested']['bool_field'].as_form_field().value == ''
92+
assert serializer['nested']['null_field'].as_form_field().value == ''

0 commit comments

Comments
 (0)