'If any fields are marked to be deferred, return a dictionary mapping
models to a set of names in those fields that will be loaded. If a
model is not in the returned dictionary, none of its fields are
deferred.
If no fields are marked for deferral, return an empty dictionary.'

def get_loaded_field_names(self):

    try:
        return self._loaded_field_names_cache
    except AttributeError:
        collection = {}
        self.deferred_to_data(collection, self.get_loaded_field_names_cb)
        self._loaded_field_names_cache = collection
        return collection
