'Dict of native values <- Dict of primitive datatypes.'

def to_internal_value(self, data):

    if (not isinstance(data, Mapping)):
        message = self.error_messages[u'invalid'].format(datatype=type(data).__name__)
        raise ValidationError({api_settings.NON_FIELD_ERRORS_KEY: [message]}, code=u'invalid')
    ret = OrderedDict()
    errors = OrderedDict()
    fields = self._writable_fields
    for field in fields:
        validate_method = getattr(self, (u'validate_' + field.field_name), None)
        primitive_value = field.get_value(data)
        try:
            validated_value = field.run_validation(primitive_value)
            if (validate_method is not None):
                validated_value = validate_method(validated_value)
        except ValidationError as exc:
            errors[field.field_name] = exc.detail
        except DjangoValidationError as exc:
            errors[field.field_name] = get_error_detail(exc)
        except SkipField:
            pass
        else:
            set_value(ret, field.source_attrs, validated_value)
    if errors:
        raise ValidationError(errors)
    return ret
