【odoo15】在odoo中添加计算字段compute

test_count是一个计算字段 拥有只读属性,计算在mysale表中有几个用户为001的订单。

代码部分:定义了一个compute名为【_compute_value2】

函数逻辑:在mysale.mysale表里 找到字段name='001'的数量为value2 并替换掉self.value的值

遇到的问题1:

 这个值本应该为动态获取的值 self.name但是控制台报了一个mysale.mysale(29,30,31,32)元组的错误。告诉我self.name为一个元组。

解决了一半:tree视图里不能增添这个value2,它会读到一个元组值,而form却是一个单一的id值,这里可以试用for循环:

for rec in self:
        value2 = self.env['mysale.mysale'].search_count([('name', '=', rec.id)])
        self.value2 = value2

2022.3.31下午: 问题解决,经过多次测试,终于找到了第二个表中的mysale_name字段的value值。正确写法如下:

与mysale.mysale表中的name字段值进行对比,从而count出有几条用户的数据,问题解决!

在表mysale中用户名为【小付】的订单有两个:

问题2:

 

别的视图都是 【视图名+第一个字段 的value值。】但是这个【mysale.mysale.id】就很奇怪,自己并没有更改任何菜单名。两个问题先暂且保留,希望有大佬能看到后能帮忙解决一下。

2022.3.21日:问题解决,我发到了微信群与QQ群都得到了言简意明的回复:  _rec_name

就这么简单,我只是从未在文档里看到过,也可能是自己忽略了,查了一下官方文档:

因为表中没有任何名称字段就必须要定义字段,两个问题全部解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值