Python 为什么计算方法只对一条记录有效?
我用这种方法计算了一名员工的加班时间,并将其转换为工资单上的“奉献”字段中的天数,效果很好,但当有多个工资单时,我需要获得一名员工所有工资单的“奉献”字段的总和,它只给我一条记录,并返回其他记录=0.00, 这里是方法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.
@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框架