sum - 如何求和一个字段的所有记录的所有值? (Odoo 13)

标签 sum odoo odoo-13

假设我有两个 float 字段:

num = fields.Float('Number')
sum_num = fields.Float('Sum all values of the num field')

我创建了第一条记录并在 num 字段中输入了 value: 1.0 ;

数 = 1.0

并希望 sum_num 字段中的结果为 1.0 ;

sum_num = 1.0

然后我创建了第二条记录并在 num 字段中输入 value: 2.0 ;

数 = 2.0

并希望 sum_num 字段中的结果为 3.0 ;

sum_num = 3.0

等等……

我试过像这样使用计算字段:

 sum_num = fields.Float(compute='_sum_num', string='Sum all values of all records of the num field')

 @api.depends('num')
 def _sum_num(self):
 for rec in self:
   if rec.num:
      rec.sum_num += rec.sum

但是我用这种方式得到了错误!

那么如何对num字段的所有记录的所有值求和呢?

请帮忙!

谢谢!

最佳答案

我不确定您的代码是否有用,但是否可行。

首先在 v13 中,计算方法必须始终在字段中设置一个值。因为在 v13 中,Odoo 不会在您的计算中设置默认值。

其次。您应该遍历每条记录并设置记录的总和。

num = fields.Float('Number')
sum_num = fields.Float(compute='_sum_num', string='Sum all values of all records of the num field')

 @api.depends('num')
 def _sum_num(self):
     # fetch all records for your model and sum num field value
     records_sum = sum(self.env["your.model"].search([]).mapped('num'))
     # Iter on each records to set records_sum
     for rec in self:
         rec.sum_num = records_sum

关于sum - 如何求和一个字段的所有记录的所有值? (Odoo 13),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68204152/

相关文章:

mysql - 使用 MySQL 创建的 View 中的 Sum 列

javascript - 提示用户在数组中输入数字,然后使用 JavaScript 求和

odoo - odoo中如何将一个字段的值复制到另一个字段?

odoo - 在弹出窗口中显示要删除的项目

docker - 将Docker容器及其数据库容器移动到另一台服务器

java - 打印数组的总和

MySQL获取具有相同id的表的总和

python - Odoo/OpenERP "Unable to login on database odoo"

python - 如何在 Odoo 13 中将现有相关字段转换为计算字段?

odoo - 如何覆盖 website_slides CSS?