如何根据条件 odoo 12 在选择字段上使用获取默认方法?

How to use get default method on a selection field based on condition odoo 12?

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

@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')

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

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

您可以将字段 next_step 更改为计算字段并在 state 上触发重新计算。当您存储计算字段时,searches/grouping 之类的所有内容都将像在普通字段上一样工作。