Wie sende ich eine einfache Nachricht und einen Status als Antwort in einem Odoo JSON-Controller?

Ich habe verschiedene Methoden ausprobiert, aber sie haben nicht funktioniert.

Zunächst habe ich es so versucht:

import openerp.http as http
from openerp.http import Response

class ResPartnerController(http.Controller):

    @http.route('/odoo/create_partner', type='json', auth='none')
    def index(self, **kwargs):

    Response.status = '400'
    return "Result message"

Ich erhalte den richtigen Status und die Nachricht im Client. Aber ich bekomme diese seltsame Warnung, wenn ich auf der Odoo-Oberfläche eine Aktion durchführe

Gibt es eine Möglichkeit, diese Meldung zu vermeiden?

Ich habe das auch in beide Richtungen versucht:

data = {'result': 'RESULT message'}
json_data = json.dumps(data, encoding='utf-8')
headers = [('Content-Type', '{}; charset=utf-8'.format('application/json'))]
mimetype = 'application/json'
res = Response(
    response=json_data,
    status=status,
    headers=headers,
    mimetype=mimetype,
)
return res
msg = u'Response 200 badly built, falling back to a simple 200 OK response'
res = Response(msg, status=200)
return res

Aber ich bekomme immer diesen Fehler als Antwort im Client:

TypeError: <Response 9 bytes [400 BAD REQUEST]> is not JSON serializable\n", "message": "<Response 9 bytes [400 BAD REQUEST]> is not JSON serializable"

Also, gibt es eine saubere Möglichkeit, eine einfache Nachricht mit dem Status der Antwort zu beantworten?

Es ist wichtig, dass ich auch den Status der Antwort sende

Wenn ich einfach auf eine Nachricht antworte, funktioniert alles einwandfrei, aber wie kann ich den Status ohne merkwürdiges Verhalten ändern?

Übrigens benutze ich dieses Skript, um die Anrufe zu erledigen

# -*- coding: utf-8 -*-

import requests
import json

url = 'http://localhost:8069/odoo/create_partner'
headers = {'Content-Type': 'application/json'}

data_res_partner = {
    'params': {
        'name': 'Example',
        'email': '[email protected]',
    }
}

data_json = json.dumps(data_res_partner)
response = requests.post(url=url, data=data_json, headers=headers)
print(response.status_code)
print(response.content)

Aktualisiere

Finally @Phillip Stack hat mir gesagt, dass ich das mit XML-RPC machen soll, also habe ich das geschriebenandere Frag um meine Zweifel zu klären.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage