Skip to content

Commit

Permalink
Fixing encode#6053: injection of read-only default values is done too…
Browse files Browse the repository at this point in the history
… late
  • Loading branch information
vdel committed Oct 11, 2018
1 parent 1c3f796 commit d48c7bd
Showing 1 changed file with 3 additions and 9 deletions.
12 changes: 3 additions & 9 deletions rest_framework/serializers.py
Expand Up @@ -431,7 +431,9 @@ def run_validation(self, data=empty):
if is_empty_value:
return data

value = self.to_internal_value(data)
to_validate = self._read_only_defaults()
to_validate.update(data)
value = self.to_internal_value(to_validate)
try:
self.run_validators(value)
value = self.validate(value)
Expand All @@ -457,14 +459,6 @@ def _read_only_defaults(self):

return defaults

def run_validators(self, value):
"""
Add read_only fields with defaults to value before running validators.
"""
to_validate = self._read_only_defaults()
to_validate.update(value)
super(Serializer, self).run_validators(to_validate)

def to_internal_value(self, data):
"""
Dict of native values <- Dict of primitive datatypes.
Expand Down

0 comments on commit d48c7bd

Please sign in to comment.