如何获取函数中字段的旧值-Odoo12
我试图在如何获取函数中字段的旧值-Odoo12,odoo,odoo-12,Odoo,Odoo 12,我试图在onchange方法中获取字段的旧值 这是我试过的 @api.onchange('assigned_to') # @api.depends('assigned_to') def onchange_assigned_to(self): print('onchange_assigned_to') history = self._origin.read(["assigned_to"]) if history: id = history[0]["assig
onchange
方法中获取字段的旧值
这是我试过的
@api.onchange('assigned_to')
# @api.depends('assigned_to')
def onchange_assigned_to(self):
print('onchange_assigned_to')
history = self._origin.read(["assigned_to"])
if history:
id = history[0]["assigned_to"][0]
last_assigned = self.env['res.users'].browse([id])
self.last_assign_id = last_assigned
上面的代码正在运行,只有通过GUI更改字段值,我才能获得旧值
我还通过按钮操作更改字段值。此时此功能不起作用
我怎样才能做到这一点
我还用@api.dependens
尝试了compute函数
那一次我得到了一个
'AttributeError:'crm.lead'对象没有属性'\u origin''
您可以在write方法中实现它,并且将始终有效,您可以保留onchange 如果要向用户提供反馈,请执行以下操作:
@api.multi
def写入(VAL):
“”“保留作业历史记录。”“”
如果VAL中的“分配对象”:#保留分配历史记录
#不用把它放在这里的VAL里
vals.pop('last\u assign\u id',None)
对于rec in self:
rec.last\u assign\u id=rec.assigned\u to
返回super(ClassName,self).write(VAL)
最后,分配给您的将按照write()
写入,因此我将在write()
中实现您的逻辑,而不是在“onchange”环境中正确执行。button这个东西不起作用,因为在调用按钮定义的任何内容之前,有一个对write()
的调用。