'Object instance -> Dict of primitive datatypes.'

def to_representation(self, instance):

    ret = OrderedDict()
    fields = self._readable_fields
    for field in fields:
        try:
            attribute = field.get_attribute(instance)
        except SkipField:
            continue
        check_for_none = (attribute.pk if isinstance(attribute, PKOnlyObject) else attribute)
        if (check_for_none is None):
            ret[field.field_name] = None
        else:
            ret[field.field_name] = field.to_representation(attribute)
    return ret
