'Represent the referenced row.
(in foreign key representations)
@param row: the row
@return: the representation of the Row, or None if there
is an error in the Row'

def represent_row(self, row, prefix=None):

    labels = self.labels
    translated = False
    if self.slabels:
        v = (labels % row)
    elif self.clabels:
        v = labels(row)
    else:
        values = [row[f] for f in self.fields if (row[f] not in (None, ''))]
        if (len(values) > 1):
            if self.translate:
                T = current.T
                values = [(T(v) if (not (type(v) is lazyT)) else v) for v in values]
                translated = True
            sep = self.field_sep
            v = sep.join([s3_str(v) for v in values])
        elif values:
            v = s3_str(values[0])
        else:
            v = self.none
    if ((not translated) and self.translate and (not (type(v) is lazyT))):
        output = current.T(v)
    else:
        output = v
    if (prefix and self.hierarchy):
        return (self.htemplate % (prefix, output))
    return output
