如何在基于条件odoo 12的选择字段上使用get default方法



我想做的是根据记录的状态从选择字段中提取一个元素。

@api.model
def _get_next_step(self):
for rec in self:
if rec.state == 'draft':
return rec.write({'next_step': 'waiting_room'})
elif rec.state == 'waiting_room':
return rec.write({'next_step': 'start_consultation'})
elif rec.state == 'start_consultation':
return rec.write({'next_step': 'finish_consultation'})
next_step = fields.Selection([
('waiting_room', 'To Waiting Room'),
('start_consultation', 'Start Consultation'),
('finish_consultation', 'Finish Consultation'),
('follow_up', 'Follow-Up'),
], string='Next Step', copy=False, index=True, track_visibility='onchange', defult='_get_next_step')

我在这里尝试做的是,在选择字段中应用default,并为default方法编写了一个函数,但字段next_step没有得到更新。

默认执行环境永远不会有记录,self始终是空记录集。api.model装饰器已经告诉你了。

您可以将字段next_step更改为计算字段,并在state上触发重新计算。当您存储计算字段时,所有类似搜索/分组的操作都将类似于普通字段。

最新更新