Skip to content

Commit 66bce38

Browse files
committed
Merge pull request #2196 from tomchristie/tomchristie-improve-update-nested-validation
Improve checks for nested creates and updates.
2 parents 5f2f54b + e1d98f7 commit 66bce38

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

rest_framework/serializers.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -633,8 +633,8 @@ def create(self, validated_attrs):
633633
# If we don't do this explicitly they'd likely get a confusing
634634
# error at the point of calling `Model.objects.create()`.
635635
assert not any(
636-
isinstance(field, BaseSerializer) and not field.read_only
637-
for field in self.fields.values()
636+
isinstance(field, BaseSerializer) and (key in validated_attrs)
637+
for key, field in self.fields.items()
638638
), (
639639
'The `.create()` method does not suport nested writable fields '
640640
'by default. Write an explicit `.create()` method for serializer '
@@ -681,8 +681,8 @@ def create(self, validated_attrs):
681681

682682
def update(self, instance, validated_attrs):
683683
assert not any(
684-
isinstance(field, BaseSerializer) and not field.read_only
685-
for field in self.fields.values()
684+
isinstance(field, BaseSerializer) and (key in validated_attrs)
685+
for key, field in self.fields.items()
686686
), (
687687
'The `.update()` method does not suport nested writable fields '
688688
'by default. Write an explicit `.update()` method for serializer '

0 commit comments

Comments
 (0)