我在学习Django Rest Framework ,也是 django 的新手。当客户端访问未找到的资源时,我想在 json 中返回自定义 404
错误。
我的 urls.py
看起来像这样:
urlpatterns = [
url(r'^mailer/$', views.Mailer.as_view(), name='send-email-to-admin')
]
其中我只有一个资源,可以通过URI访问, http://localhost:8000/mailer/
现在,当客户端访问任何其他 URI,如 http://localhost:8000/ ,API 应该返回一个 404-Not Found
错误,如下所示:
{
"status_code" : 404
"error" : "The resource was not found"
}
如果合适,请使用适当的代码片段建议一些答案。
最佳答案
您正在寻找handler404
.
这是我的建议:
- 创建一个 View ,如果所有 URL 模式都不匹配,则应调用该 View 。
- 将
handler404 = path.to.your.view
添加到您的根 URLconf。
这是它是如何完成的:
project.views
from django.http import JsonResponse def custom404(request, exception=None): return JsonResponse({ 'status_code': 404, 'error': 'The resource was not found' })
project.urls
from project.views import custom404 handler404 = custom404
阅读error handling了解更多详情。
关于python - 在 Django Rest Framework 中找不到资源时返回自定义 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380280/