4

我想用 DRF 响应替换默认的 django 404(以及将来的其他),尽可能简单,只是返回(标准 DRF 响应):

{
    "detail": "Not found."
}

所以我把这段代码放在我的 url.py 文件中。

from rest_framework.exceptions import NotFound
from django.conf.urls import handler404
handler404 = NotFound

当我设置 Debug 标志(在设置的 Ture 中我得到 500 时,将其设置为 False 404 但在 html 表单中。

我在这里阅读过文档:http: //www.django-rest-framework.org/api-guide/exceptions/但老实说,我不知道如何将其变为现实。

这似乎很容易,但不知何故我未能实现这一点(上面的代码来自其他 SO 线程)。

先感谢您

4

1 回答 1

2

您应该为 404 创建一个自定义视图然后使用它。例如:

views.py

from django.http import HttpResponseNotFound
import json

def error404(request, exception):
    response_data = {}
    response_data['detail'] = 'Not found.'
    return HttpResponseNotFound(json.dumps(response_data), content_type="application/json")

然后在urls.py

from django.conf.urls import handler404

from yourapp.views import error404

handler404 = error404
于 2018-02-16T23:14:21.070 回答