阶段的 onchange 函数
Onchange function for stage
我在 odoo10 中有两个字段,我想为其中一个添加 @onchange
功能。
在一个字段中我添加了三个工作流程,在第一个工作流程中work1
我添加了两个阶段(创建、新建)。同样,对于第二个 work2
和第三个 work3
,我添加了两个阶段(草稿、升级)和(分配、待定)。
当我从工作流字段中 select work1
时,相关阶段应显示在阶段字段中。那么,任何人都可以解决这个问题吗?
我的 python 代码如下:
work_flow_stage = fields.Many2one('stage.workflow', string="Work Flow", change_default=True, default=_work_flow_status)
work_stage = fields.Many2one('partner.state', string="Stage")
@api.onchange('work_flow_stage', 'work_stage')
@api.multi
def _work_flow_status(self):
stage = self.env['stage.workflow'].search([('work_stage', 'in', 'work_flow_stage')], limit=1)
print "stage", stage
return stage
该方法不会为您当前的 work_stage 分配任何内容,它只是 return 值,该值将在执行后被忽略。
我假设您在 stage.workflow
中有相同的字段 work_stage
。
如果您想通过 @api.onchange
执行此操作,您可以通过两种方式实现它:
@api.onchange('work_flow_stage')
def _onchange_work_flow_stage(self):
return {
'value': {
'work_stage': self.work_flow_stage.work_stage.id
}
}
# ========= OR ===========
self.work_stage = self.work_flow_stage.work_stage.id
可能可以对关系执行此操作,例如:
work_flow_stage = fields.Many2one('stage.workflow', 'Work Flow', change_default=True)
work_stage = fields.Many2one('partner.state', 'Stage', related='work_flow_stage.work_stage')
不过,我不确定当您立即更改 work_flow_stage 时它是否有效。请发送反馈。
希望,这会有所帮助。
我在 odoo10 中有两个字段,我想为其中一个添加 @onchange
功能。
在一个字段中我添加了三个工作流程,在第一个工作流程中work1
我添加了两个阶段(创建、新建)。同样,对于第二个 work2
和第三个 work3
,我添加了两个阶段(草稿、升级)和(分配、待定)。
当我从工作流字段中 select work1
时,相关阶段应显示在阶段字段中。那么,任何人都可以解决这个问题吗?
我的 python 代码如下:
work_flow_stage = fields.Many2one('stage.workflow', string="Work Flow", change_default=True, default=_work_flow_status)
work_stage = fields.Many2one('partner.state', string="Stage")
@api.onchange('work_flow_stage', 'work_stage')
@api.multi
def _work_flow_status(self):
stage = self.env['stage.workflow'].search([('work_stage', 'in', 'work_flow_stage')], limit=1)
print "stage", stage
return stage
该方法不会为您当前的 work_stage 分配任何内容,它只是 return 值,该值将在执行后被忽略。
我假设您在 stage.workflow
中有相同的字段 work_stage
。
如果您想通过 @api.onchange
执行此操作,您可以通过两种方式实现它:
@api.onchange('work_flow_stage')
def _onchange_work_flow_stage(self):
return {
'value': {
'work_stage': self.work_flow_stage.work_stage.id
}
}
# ========= OR ===========
self.work_stage = self.work_flow_stage.work_stage.id
可能可以对关系执行此操作,例如:
work_flow_stage = fields.Many2one('stage.workflow', 'Work Flow', change_default=True)
work_stage = fields.Many2one('partner.state', 'Stage', related='work_flow_stage.work_stage')
不过,我不确定当您立即更改 work_flow_stage 时它是否有效。请发送反馈。
希望,这会有所帮助。