'Returns a list of (related-object, model) pairs. Similar to
get_fields_with_model().'

def get_all_related_objects_with_model(self, local_only=False, include_hidden=False):

    try:
        self._related_objects_cache
    except AttributeError:
        self._fill_related_objects_cache()
    predicates = []
    if local_only:
        predicates.append((lambda k, v: (not v)))
    if (not include_hidden):
        predicates.append((lambda k, v: (not k.field.rel.is_hidden())))
    return filter((lambda t: all([p(*t) for p in predicates])), self._related_objects_cache.items())
