python - 预期单例错误odoo

标签 python odoo

想问一下 odoo 中预期的单例错误。即使我用 @api.one 修复了它,我仍然对错误感到困惑,想知道我可以在没有 @api.one 的情况下修复它吗?这是我使用@api.one 的代码:

class overtime_details(models.Model):
   _name='overtime.overtime_details'

   @api.onchange('employee_id')
   @api.one
   def attd_check(self):
     #import pdb;pdb.set_trace()
     for attds in self:
        if attds.id:
            ov = 0.0
            attd = self.env['hr.attendance']
            signin = attd.search([('name','=',self.overtime_id.start_date), 
                    ('employee_id','=', self.employee_id.id), ('action','=','sign_in')])
            signout = attd.search([('name','=',self.overtime_id.end_date), 
                    ('employee_id','=',self.employee_id.id), ('action','=','sign_out')])
            if signin:
                if signout:
                    ov = self.env['overtime.overtime'].calc_overtime(self.overtime_id.start_date, self.overtime_id.end_date)
                else:
                    ov = 0.0
            else:
                ov = 0.0

            self.ovrtm = ov


   nik = fields.Char('NIK', size=250, required=True)
   overtime_id = fields.Many2one('overtime.overtime', string="Overtime", ondelete='cascade')
   job_id = fields.Many2one('hr.job', string="Position")
   employee_id = fields.Many2one('hr.employee', "Employee", required=True, select=True)
   ovrtm = fields.Float(compute='attd_check', string='Overtime Hour(s)')

这是使用 odoo 8 的回溯和 iam:

    File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\fields.py", line 825, i
n __get__
  File "C:\Program Files (x86)\Odoo 8.0\server\.\openerp\models.py", line 5323,
in ensure_one
except_orm: ('ValueError', 'Expected singleton: overtime.overtime_details(2,
 3, 4)')

我是 odoo 和 python 的新手,这是我第一次遇到这种错误,在此之前感谢

最佳答案

@api.one表示记录,@api.multi表示多条记录。 在 @api.multi 的情况下,您应该仅使用 for rec in self:。在单条记录的情况下,您不需要使用 for,它只是没有意义。

错误消息显示预期的单例,这意味着:您使用的是记录集而不是记录,您没有发布错误日志,所以我只能猜测您需要从搜索结果中弹出单个记录。

祝你好运

关于python - 预期单例错误odoo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42645190/

相关文章:

android - 当应用程序中为 false 时,如何默认启用同步选项?

python - 查找特定 res.partner 位置的产品数量 - Odoo v8

python - JAX:每个示例的平均梯度与聚合梯度不同

python - 如何将模块员工中的按钮创建/编辑隐藏到属于员工/员工组的员工?

python - 为绘制列表的曲线下面积着色

python - 如何将我的自定义菜单添加到门户用户菜单列表?

javascript - 如何防止 odoo 10 中的异步执行?

odoo - 为什么组在 <menuitem 组 ='' > 标签和 odoo 11 中的目的

python - 从 DatetimeIndex 中选取特定时间范围内的时间戳

Python Windows 身份验证用户名和密码不起作用