diff options
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 6f89df0d..53f092d7 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -419,8 +419,14 @@ class Serializer(BaseSerializer):          fields = [field for field in self.fields.values() if not field.write_only]          for field in fields: -            attribute = field.get_attribute(instance) +            try: +                attribute = field.get_attribute(instance) +            except SkipField: +                continue +              if attribute is None: +                # We skip `to_representation` for `None` values so that +                # fields do not have to explicitly deal with that case.                  ret[field.field_name] = None              else:                  ret[field.field_name] = field.to_representation(attribute) | 
