2019年7月-使用最新的Django / DRF:
在myproj/my_api_app/public_views.py
中,我有:
def custom_exception_handler(exc, context):
# Call REST framework's default exception handler first,
# to get the standard error response.
response = exception_handler(exc, context)
# Now add the HTTP status code to the response.
if response is not None:
response.data['status_code'] = response.status_code
return response
在myproj/myproj/settings.py
中,我有:(是,两次 myproj / myproj )
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
],
'DEFAULT_THROTTLE_CLASSES': (
'rest_framework.throttling.ScopedRateThrottle',
),
'DEFAULT_THROTTLE_RATES': {
'public_get': '30/minute',
'user_get': '60/minute'
},
'EXCEPTION_HANDLER': 'myproj.my_api_app.public_views.custom_exception_handler'
}
我尝试故意击中不存在的端点,但仍收到默认的404消息。我的设置中有DEBUG=False
。
我尝试了EXCEPTION_HANDLER
的“路径”的每个排列。什么都没有。 EXCEPTION_HANDLER
只是被忽略。从未调用过custom_exception_handler
。
我在做什么错?
答案 0 :(得分:1)
其余框架异常视图不适用于无效路由。尝试将无效请求发送到API路由以查看其实际效果。