如何在Odoo上为自定义值制作控制器?

如何在Odoo上为自定义值制作控制器?,odoo,odoo-10,Odoo,Odoo 10,我需要在Odoo上制作一个自定义控制器,用于从特定任务中获取信息。我也能得出结果。但现在我面临一个问题 客户端需要检索具有特定字段的信息 比如说,, 客户端需要检索带有跟踪号的信息,并且数据也必须是JSON格式。如果跟踪号码是15556456356,url应该是www.customurl.com/dataset/15556456356该url的路由应该是@http.route('/dataset/',type='http或json',auth=“user或public”),基本上方法应该是这样的

我需要在Odoo上制作一个自定义控制器,用于从特定任务中获取信息。我也能得出结果。但现在我面临一个问题

客户端需要检索具有特定字段的信息

比如说,,
客户端需要检索带有跟踪号的信息,并且数据也必须是JSON格式。如果跟踪号码是15556456356,url应该是www.customurl.com/dataset/15556456356

该url的路由应该是
@http.route('/dataset/',type='http或json',auth=“user或public”)
,基本上方法应该是这样的:

导入json
从odoo导入http
从odoo.http导入响应,请求
类跟踪(http.Controller):
#如果必须对用户进行身份验证,请使用auth=“user”
@http.route('/dataset/',type='http',auth=“public”)
def跟踪(自我,跟踪编号):#使用相同的变量名称
结果=#使用给定的跟踪编号计算结果,结果应该是传递给它的dict json.dumps
返回响应(json.dumps(result),content\u type='application/json;charset=utf-8',status=200)
此方法接受
http
请求并返回
json
响应,如果客户端发送
json
请求,则应更改
type='json'
。不要忘了导入
\uuuu init\uuuuuuuuuuy.py
中的文件

举个例子,假设我想通过
URL
中的给定
ID
返回有关
sale.order
的一些信息:

导入json
从odoo导入http
从odoo.http导入响应,请求
类跟踪(http.Controller):
@http.route('/dataset/',type='http',auth=“public”)
def跟踪(自我、销售标识):
#使用超级用户获取信息
结果=request.env['sale.order'].sudo()。浏览([sale\u id])。读取(['name','date\u order']))
返回响应(json.dumps(result),content\u type='application/json;charset=utf-8',status=200)
因此,当我使用浏览器输入此URL时:
http://localhost:8069/dataset/1


在“/dataset/”中这个“int”是什么?是否为整数?我需要用一个char字段来搜索它。使用
这就是我假设的全部字段类型是整数很抱歉你刚才告诉werkzeug将该值转换为相应的类型,并将方法传递给它。嗨@CharifDZ,你能消除我的疑问吗?那么像/start/”这样的路由有什么用呢(你会得到通知,这就是我在这里发表评论的原因。)@AjmalJK Odoo定义了一个自定义转换器,它在这里接受这个URL
/start/should\u id\u
你可以检查
base
中定义的
ModelConverter
并阅读
werkzeug
中关于转换器的内容,Odoo使用这个类创建一个转换器,然后传递URL的那个部分捕获的值,以用那个id检索记录检查方法
的代码到_python
他只是在使用browse方法。