gpt4 book ai didi

django - 在 Django Rest 框架渲染器类中获取响应状态

转载 作者:行者123 更新时间:2023-12-02 04:12:59 25 4
gpt4 key购买 nike

我已经实现了我的自定义渲染器,如下所示:

from rest_framework.renderers import JSONRenderer

class CustomJSONRenderer(JSONRenderer):

def render(self, data, accepted_media_type=None, renderer_context=None):

//I am hardcoding status and message for now. Which I have to update according to the response.
data = {'data': data, 'message':'ok', 'status':200 }

return super(CustomJSONRenderer, self).render(data, accepted_media_type, renderer_context)

这工作得很好。现在我想使用响应的 HTTP 状态代码更新状态,从而提供自定义消息。那么我应该如何实现这一目标呢?

基本上我想要这样的回应:

{"status":200, "data":[实际数据在此。], "message":"ok"}

最佳答案

另外,我发现我们可以获取状态信息。 renderer_context 参数实际上包含以下信息 -

{'view': <ViewSet object at 0x7ff3dcc3fac0>, 'args': (), 'kwargs': {}, 'request': <rest_framework.request.Request object at 0x7ff3dcc37e20>, 'response': <Response status_code=400, "application/json; charset=utf-8">}

这意味着 renderer_context 参数是一个字典,可以用来修改您的响应。例如-

    def render(self, data, accepted_media_type=None, renderer_context=None):
if renderer_context is not None:
print(renderer_context['response'].status_code)

关于django - 在 Django Rest 框架渲染器类中获取响应状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35501961/

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