From 8d2ac40658a9b7eb81495fe384e11ba8becbe1af Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Tue, 20 Mar 2018 12:26:51 +0100 Subject: [PATCH] Revert "Non-required fields with 'allow_null=True' should not imply a default value (#5639)" This reverts commit 905a5579dfaa717ad4210ddd285267bb9bbb9a43. Closes #5708 --- rest_framework/fields.py | 4 ++-- tests/test_serializer.py | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/rest_framework/fields.py b/rest_framework/fields.py index ad710b967..58e28ed4c 100644 --- a/rest_framework/fields.py +++ b/rest_framework/fields.py @@ -442,10 +442,10 @@ class Field(object): except (KeyError, AttributeError) as exc: if self.default is not empty: return self.get_default() - if not self.required: - raise SkipField() if self.allow_null: return None + if not self.required: + raise SkipField() msg = ( 'Got {exc_type} when attempting to get a value for field ' '`{field}` on serializer `{serializer}`.\nThe serializer ' diff --git a/tests/test_serializer.py b/tests/test_serializer.py index c077e7f62..c44e830d0 100644 --- a/tests/test_serializer.py +++ b/tests/test_serializer.py @@ -384,14 +384,6 @@ class TestNotRequiredOutput: serializer.save() assert serializer.data == {'included': 'abc'} - def test_not_required_output_for_allow_null_field(self): - class ExampleSerializer(serializers.Serializer): - omitted = serializers.CharField(required=False, allow_null=True) - included = serializers.CharField() - - serializer = ExampleSerializer({'included': 'abc'}) - assert 'omitted' not in serializer.data - class TestDefaultOutput: def setup(self):