Django rest framework Django Rest框架:异常处理程序不工作

Django rest framework Django Rest框架:异常处理程序不工作,django-rest-framework,Django Rest Framework,Django Rest框架异常处理程序似乎不适合我。验证错误将转化为500个响应 当引发ValidationError时,它不会转换为400 Traceback (most recent call last): File "/example/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner response = get_response(request)

Django Rest框架异常处理程序似乎不适合我。验证错误将转化为500个响应

当引发
ValidationError
时,它不会转换为400

Traceback (most recent call last):
  File "/example/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/example/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/example/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/example/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/example/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)
  File "/example/app/views.py", line 25, in post
    serializer.is_valid(raise_exception=True)
  File "/example/.local/lib/python3.6/site-packages/rest_framework/serializers.py", line 242, in is_valid
    raise ValidationError(self.errors)
rest_framework.exceptions.ValidationError: {'email': [ErrorDetail(string='Enter a valid email address.', code='invalid')]}
[26/Feb/2020 20:44:54] "POST /login/ HTTP/1.1" 500 84465
settings.py中
我有

INSTALLED_APPS = [
    # ...
    'rest_framework',
]
但是无论我是否在我的
安装的应用程序中安装了
rest\u框架
,我都会得到同样的行为

将此项添加到
settings.py
也没有效果:

REST_FRAMEWORK = {
    'EXCEPTION_HANDLER': 'bla',
}

我是否遗漏了一些明显的内容?

结果表明,这取决于抛出异常时正在细分的视图

我正在子类化
视图
,这不起作用:

来自rest\u框架导入视图的

从rest_framework.exceptions导入ValidationError
类LoginView(视图.视图):
def post(自我,请求):
引发ValidationError()
切换到使用
GenericAPIView
修复了我的问题:

从rest\u框架导入泛型
从rest_framework.exceptions导入ValidationError
类LoginView(泛型.泛型视图):
def post(自我,请求):
引发ValidationError()