'Returns a list of values for this field for this instance. It\'s a list
so we can accomodate many-to-many fields.'

def values(self):

    if self.field.rel:
        if isinstance(self.field.rel, models.ManyToOneRel):
            objs = getattr(self.instance.instance, self.field.name)
        elif isinstance(self.field.rel, models.ManyToManyRel):
            return list(getattr(self.instance.instance, self.field.name).all())
    elif self.field.choices:
        objs = dict(self.field.choices).get(self.raw_value, EMPTY_VALUE)
    elif (isinstance(self.field, models.DateField) or isinstance(self.field, models.TimeField)):
        if self.raw_value:
            if isinstance(self.field, models.DateTimeField):
                objs = capfirst(formats.date_format(self.raw_value, u'DATETIME_FORMAT'))
            elif isinstance(self.field, models.TimeField):
                objs = capfirst(formats.time_format(self.raw_value, u'TIME_FORMAT'))
            else:
                objs = capfirst(formats.date_format(self.raw_value, u'DATE_FORMAT'))
        else:
            objs = EMPTY_VALUE
    elif (isinstance(self.field, models.BooleanField) or isinstance(self.field, models.NullBooleanField)):
        objs = {True: u'Yes', False: u'No', None: u'Unknown'}[self.raw_value]
    else:
        objs = self.raw_value
    return [objs]
