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):