'Represent a single value (standard entry point).
@param value: the value
@param row: the referenced row (if value is a foreign key)
@param show_link: render the representation as link'

def __call__(self, value, row=None, show_link=True):

    self._setup()
    show_link = (show_link and self.show_link)
    if self.list_type:
        return self.multiple(value, rows=row, list_type=False, show_link=show_link)
    if (row and self.table):
        value = row[self.key]
    if value:
        rows = ([row] if (row is not None) else None)
        items = self._lookup([value], rows=rows)
        if (value in items):
            (k, v) = (value, items[value])
            r = (self.link(k, v, row=self.rows.get(k)) if show_link else items[value])
        else:
            r = self.default
        return r
    return self.none
