'Same as field_for, except that it avoids the extra lookup to get the field object'

@read_api
def fast_field_for(self, field_obj, book_id, default_value=None):

    if field_obj.is_composite:
        return field_obj.get_value_with_cache(book_id, self._get_proxy_metadata)
    if field_obj.is_multiple:
        default_value = field_obj.default_value
    try:
        return field_obj.for_book(book_id, default_value=default_value)
    except (KeyError, IndexError):
        return default_value
