This commit is contained in:
Nicolas Delaby 2018-03-20 07:46:52 +00:00 committed by GitHub
commit dc70005b01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -442,6 +442,8 @@ class Field(object):
except (KeyError, AttributeError) as exc:
if self.default is not empty:
return self.get_default()
if self.read_only and self.allow_null:
return None
if not self.required:
raise SkipField()
if self.allow_null:

View File

@ -387,10 +387,16 @@ class TestNotRequiredOutput:
def test_not_required_output_for_allow_null_field(self):
class ExampleSerializer(serializers.Serializer):
omitted = serializers.CharField(required=False, allow_null=True)
ommited_read_only = serializers.CharField(
required=False,
read_only=True,
allow_null=True
)
included = serializers.CharField()
serializer = ExampleSerializer({'included': 'abc'})
assert 'omitted' not in serializer.data
assert serializer.data['ommited_read_only'] is None
class TestDefaultOutput: