odoo controllers 中type="Json" 或type="http"
Posted 行走在云端
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了odoo controllers 中type="Json" 或type="http"相关的知识,希望对你有一定的参考价值。
服务端接收参考:
# 导包 from odoo import http class HttpRequest(http.Controller): @http.route(\'/url\', type=\'json\', auth=\'public\', website=True) def server_method(self, *args, **kwargs): # *args, **kwargs接收参数 pass # route中的参数可以参考odoo/http.py文件里def route(route=None, **kw)方法 # type在这里选择json
提供一个操作model(创建、修改)报权限问题的解决方法:
# 需要导入odoo import odoo # http.request.env[\'model\'].create() 前加入下面这句话,会用超级管理员执行操作。若担心问题的话,可以使用登录的方法,这里暂不做演示 http.request.uid = odoo.SUPERUSER_ID
-
客户端发送参考
-
import requests, json data = {"params":param} # 这个param代表需要传入的参数,params这个key非常重要,只有带了这个key,服务端才能接受到参数 # 可以参考odoo/http.py文件里 class JsonRequest(WebRequest) 类,明确说明了 requests.post(url=\'http://localhost:8069/url\', data=json.dumps(data)) # 说明一下,resquest中post这个api会根据data的数据类型自动转换请求头里Content-Type对应的参数
或者通过工具postman测试:
最后值得注意的地方
- 服务端
type=\'json\'
- 客户端
data中一定要加入params
数据需要转成Json
案例1
如何使用type =’json’在Odoo控制器中获取JSON数据?
以上是关于odoo controllers 中type="Json" 或type="http"的主要内容,如果未能解决你的问题,请参考以下文章
python [删除文件Controller] Odoo删除文件Controller #Odoo