Skip to content

Commit acd53cf

Browse files
committed
Revert "Non-required fields with 'allow_null=True' should not imply a default value (encode#5639)"
This reverts commit 905a557. Closes encode#5708
1 parent 18bca8d commit acd53cf

File tree

2 files changed

+2
-10
lines changed

2 files changed

+2
-10
lines changed

rest_framework/fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,10 +442,10 @@ def get_attribute(self, instance):
442442
except (KeyError, AttributeError) as exc:
443443
if self.default is not empty:
444444
return self.get_default()
445-
if not self.required:
446-
raise SkipField()
447445
if self.allow_null:
448446
return None
447+
if not self.required:
448+
raise SkipField()
449449
msg = (
450450
'Got {exc_type} when attempting to get a value for field '
451451
'`{field}` on serializer `{serializer}`.\nThe serializer '

tests/test_serializer.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -384,14 +384,6 @@ def create(self, validated_data):
384384
serializer.save()
385385
assert serializer.data == {'included': 'abc'}
386386

387-
def test_not_required_output_for_allow_null_field(self):
388-
class ExampleSerializer(serializers.Serializer):
389-
omitted = serializers.CharField(required=False, allow_null=True)
390-
included = serializers.CharField()
391-
392-
serializer = ExampleSerializer({'included': 'abc'})
393-
assert 'omitted' not in serializer.data
394-
395387

396388
class TestDefaultOutput:
397389
def setup(self):

0 commit comments

Comments
 (0)