'Returns the final display data for this column from the given inputs.
The return value will be either the attribute specified for this column
or the return value of the attr:`~horizon.tables.Column.transform`
method for this column.'

def get_data(self, datum):

    datum_id = self.table.get_object_id(datum)
    if (datum_id in self.table._data_cache[self]):
        return self.table._data_cache[self][datum_id]
    data = self.get_raw_data(datum)
    display_value = None
    if self.display_choices:
        display_value = [display for (value, display) in self.display_choices if (value.lower() == (data or '').lower())]
    if display_value:
        data = display_value[0]
    else:
        for filter_func in self.filters:
            try:
                data = filter_func(data)
            except Exception:
                msg = "Filter    '%(filter)s'    failed    with    data    '%(data)s'    on    column    '%(col_name)s'"
                args = {'filter': filter_func.__name__, 'data': data, 'col_name': six.text_type(self.verbose_name)}
                LOG.warning(msg, args)
    if (data and self.truncate):
        data = truncatechars(data, self.truncate)
    self.table._data_cache[self][datum_id] = data
    return self.table._data_cache[self][datum_id]
