gpt4 book ai didi

python - 自定义 NotFound 异常 --- Django REST Framework

转载 作者:行者123 更新时间:2023-11-30 22:38:53 26 4
gpt4 key购买 nike

假设一个最小的应用程序具有 person 模型、ModelSerializer 和相应的 ReadOnlyModelViewSet

数据库中只存在一个条目,因此当请求 /person/1 时,正确的响应是:

{
"name": "RandomName1"
}

当请求/person/2时,响应是:

{
"detail": "Not found."
}

我想自定义这个。

尽管我读了 documentation目前尚不清楚我如何自定义它。

我应该澄清一下,我希望根据 View 对此进行自定义。例如 /person/2 应返回:

{
"detail": "Person 2 was not found."
}

/address/3应该返回:

{
"detail": "Address 3 was not found."
}

最佳答案

听起来您想要处理具有 404 状态代码的响应。修改链接文档中的示例:

from rest_framework.views import exception_handler

def custom_exception_handler(exc, context):
response = exception_handler(exc, context)

if response.data['status_code'] == 404:
try:
response.data['detail'] = "{name} {id} was not found.".format(
name=context['view'].verbose_name,
id=context['kwargs']['id'] # this may need tweaking
)
except AttributeError:
pass

return response

然后将相应的verbose_name 添加到您的 View 中。

关于python - 自定义 NotFound 异常 --- Django REST Framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43388778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com