odoo 更改返回的json 格式

from odoo import http
from odoo.http import request, Response, JsonRequest
from odoo.tools import date_utils
import json

class JsonRequestNew(JsonRequest):

    def _json_response(self, result=None, error=None):

        # response = {
        #    'jsonrpc': '2.0',
        #    'id': self.jsonrequest.get('id')
        #    }
        # if error is not None:
        #    response['error'] = error
        # if result is not None:
        #    response['result'] = result

        responseData = super(JsonRequestNew, self)._json_response(result=result, error=error)

        response = {}
        if error is not None:
            response = error
        if result is not None:
            response = result

        mime = 'application/json'
        body = json.dumps(response, default=date_utils.json_default)

        return Response(
            body, status=error and error.pop('http_status', 200) or 200,
            headers=[('Content-Type', mime), ('Content-Length', len(body))]
        )


class RootNew(http.Root):

    def get_request(self, httprequest):

        # deduce type of request

        jsonResponse = super(RootNew, self).get_request(httprequest=httprequest)

        if httprequest.mimetype in ("application/json", "application/json-rpc"):
            return JsonRequestNew(httprequest)
        else:
            return jsonResponse


http.root = RootNew()

https://stackoverflow.com/questions/64632952/change-jsonrequest-python-in-odoo

只是调用接口能够实现,但是会导致原生网页全部打不开了,后续研究下只针对某一个接口的修改

补充方案:

https://blog.csdn.net/lm_is_dc/article/details/115695857


懂得,原来世界如此简单!

原文地址:https://www.cnblogs.com/qianxunman/p/15180270.html