8000 use writablefield style for serializer handling of self.default · dhepper/django-rest-framework@101fa26 · GitHub
[go: up one dir, main page]

Skip to content

Commit 101fa26

Browse files
committed
use writablefield style for serializer handling of self.default
1 parent d6d5b1d commit 101fa26

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

rest_framework/serializers.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -358,11 +358,13 @@ def field_from_native(self, data, files, field_name, into):
358358
try:
359359
value = data[field_name]
360360
except KeyError:
361-
if self.required:
362-
raise ValidationError(self.error_messages['required'])
363-
if self.default is None:
361+
if self.default is not None and not self.partial:
362+
# Note: partial updates shouldn't set defaults
363+
value = copy.deepcopy(self.default)
364+
else:
365+
if self.required:
366+
raise ValidationError(self.error_messages['required'])
364367
return
365-
value = copy.deepcopy(self.default)
366368

367369
# Set the serializer object if it exists
368370
obj = getattr(self.parent.object, field_name) if self.parent.object else None

0 commit comments

Comments
 (0)
0