首页 > 解决方案 > 当提供的 url 与 ROOT_URLCONF 中的任何 URL 不匹配时,Django 自定义错误处理

问题描述

当来自前端的端点与 settings.py 中 ROOT_URLCONF 中的任何 URL 不匹配时,如何向前端发送自定义错误消息。目前,如果在 ROOT_URLCONF 中找不到 URL,则会引发 403 错误,并且整个 html 内容都将出现在错误消息中。

在这种情况下如何发送自定义错误消息。

标签: djangorootcustom-error-handlingurlconf

解决方案


您可以有一个自定义错误处理函数返回一个 json 字符串

def not_found_request(request, exception, *args, **kwargs):
"""
Generic 404 error handler.
"""
data = {
    'error': 'The requested endpoint does not exist'
}
return JsonResponse(data, status=status.HTTP_404_NOT_FOUND)

然后在您的 urlconf 文件中,您可以将其设置为handler404 = 'not_found_request'


推荐阅读