'We override the default `run_validation`, because the validation
performed by validators and the `.validate()` method should
be coerced into an error dictionary with a \'non_fields_error\' key.'

def run_validation(self, data=empty):

    (is_empty_value, data) = self.validate_empty_values(data)
    if is_empty_value:
        return data
    value = self.to_internal_value(data)
    try:
        self.run_validators(value)
        value = self.validate(value)
        assert (value is not None), u'.validate()    should    return    the    validated    data'
    except (ValidationError, DjangoValidationError) as exc:
        raise ValidationError(detail=as_serializer_error(exc))
    return value
