diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index b153c067f..320148789 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -819,10 +819,10 @@ def raise_errors_on_nested_writes(method_name, serializer, validated_data): # ... # address = serializer.CharField('profile.address') assert not any( - '.' in field.source and - (key in validated_data) and - isinstance(validated_data[key], (list, dict)) - for key, field in serializer.fields.items() + len(field.source_attrs) > 1 and + (field.source_attrs[0] in validated_data) and + isinstance(validated_data[field.source_attrs[0]], (list, dict)) + for field in serializer._writable_fields ), ( 'The `.{method_name}()` method does not support writable dotted-source ' 'fields by default.\nWrite an explicit `.{method_name}()` method for '