mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 19:40:13 +03:00
allow default boolean values to be honoured
This commit is contained in:
parent
43c4e3aab8
commit
b96404516d
|
@ -185,6 +185,9 @@ class Field(object):
|
|||
Given and object and a field name, returns the value that should be
|
||||
serialized for that field.
|
||||
"""
|
||||
if obj is None and self.default is not None:
|
||||
return self.default
|
||||
|
||||
if obj is None:
|
||||
return self.empty
|
||||
|
||||
|
|
|
@ -1720,3 +1720,36 @@ class TestSerializerTransformMethods(TestCase):
|
|||
'b_renamed': None,
|
||||
}
|
||||
)
|
||||
class DefaultTrueBooleanModel(models.Model):
|
||||
cat = models.BooleanField(default=True)
|
||||
dog = models.BooleanField(default=True)
|
||||
|
||||
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_blank_input(self):
|
||||
serializer = self.default_true_boolean_serializer()
|
||||
self.assertEqual(serializer.data['dog'], True)
|
||||
self.assertEqual(serializer.data['cat'], True)
|
||||
|
||||
|
||||
|
||||
def test_enabled_as_false(self):
|
||||
serializer = self.default_true_boolean_serializer({'cat': False, 'dog': False})
|
||||
self.assertEqual(serializer.data['cat'], False)
|
||||
self.assertEqual(serializer.data['dog'], False)
|
||||
|
||||
|
||||
def test_enabled_as_true(self):
|
||||
serializer = self.default_true_boolean_serializer({'cat': True, 'dog': True})
|
||||
self.assertEqual(serializer.data['cat'], True)
|
||||
self.assertEqual(serializer.data['dog'], True)
|
||||
|
|
Loading…
Reference in New Issue
Block a user