Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么计算方法只对一条记录有效?_Python_Python 2.7_For Loop_Orm_Odoo - Fatal编程技术网

Python 为什么计算方法只对一条记录有效?

Python 为什么计算方法只对一条记录有效?,python,python-2.7,for-loop,orm,odoo,Python,Python 2.7,For Loop,Orm,Odoo,我用这种方法计算了一名员工的加班时间,并将其转换为工资单上的“奉献”字段中的天数,效果很好,但当有多个工资单时,我需要获得一名员工所有工资单的“奉献”字段的总和,它只给我一条记录,并返回其他记录=0.00, 这里是方法 @api.multi @api.depends('date_to','date_to','employee_id') def compute_amount(self): for rec in self: rec.attend = self.env['hr.

我用这种方法计算了一名员工的加班时间,并将其转换为工资单上的“奉献”字段中的天数,效果很好,但当有多个工资单时,我需要获得一名员工所有工资单的“奉献”字段的总和,它只给我一条记录,并返回其他记录=0.00, 这里是方法

@api.multi
@api.depends('date_to','date_to','employee_id')
def compute_amount(self):
    for rec in self:
        rec.attend = self.env['hr.attendance'].search(
            [('check_in', '>=', rec.date_from), ('check_out', '<=', rec.date_to),
             ('employee_id', '=', rec.employee_id.id), ])
        late=[float(s.late) for s in rec.attend]
        tot_late= float(sum(late))
    rec.dedication = tot_late / 8
    pass

dedication = fields.Float(string="Dedication",  required=False,compute=compute_amount )
@api.multi
@api.dependens('date\u to'、'date\u to'、'employee\u id')
def计算金额(自身):
对于rec in self:
rec.attention=self.env['hr.attention'].搜索(

[('check_in','>=',rec.date_from),('check_out','这可能是因为
rec.dedication=tot_late/8
for rec in self
循环之外。这意味着该值仅在它计算的最后一条记录上设置。
此外,这里似乎不需要pass值。

这是什么
pass
用于什么库?请共享所有相关的代码和数据。请参阅:。更正
pass
@alexanderceécile前面的行缩进亲爱的我在标签中说的odoo框架