我想做的是根据记录的状态从选择字段中提取一个元素。
@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
上触发重新计算。当您存储计算字段时,所有类似搜索/分组的操作都将类似于普通字段。