Python 如何从Odoo8中的其他向导调用向导?
我有一个向导,其中有一个one2many字段。我在one2many的每一行都做了一个按钮,它调用了我做的另一个向导。此向导用于修改选定行的某些值 我的目的是,当您单击我的向导的应用按钮时,返回第一个向导以及新的更改 例如: 第一个向导有一个one2many字段,其中包含三条记录:Python 如何从Odoo8中的其他向导调用向导?,python,python-2.7,odoo-8,odoo,Python,Python 2.7,Odoo 8,Odoo,我有一个向导,其中有一个one2many字段。我在one2many的每一行都做了一个按钮,它调用了我做的另一个向导。此向导用于修改选定行的某些值 我的目的是,当您单击我的向导的应用按钮时,返回第一个向导以及新的更改 例如: 第一个向导有一个one2many字段,其中包含三条记录: 产品A | 1 ud |源位置X |目的位置Y |标段A1 产品B | 2 ud |源位置X |目的位置Y |标段B1 产品C | 3 ud |源位置X |目的位置Y |批次C1 现在,我单击我制作的第一行按钮(每
- 产品A | 1 ud |源位置X |目的位置Y |标段A1
- 产品B | 2 ud |源位置X |目的位置Y |标段B1
- 产品C | 3 ud |源位置X |目的位置Y |批次C1
- 产品A | 1 ud |源位置X |目的位置Y |批次A0
- 产品B | 2 ud |源位置X |目的位置Y |标段B1
- 产品C | 3 ud |源位置X |目的位置Y |批次C1
有人知道如何做到这一点吗?如何保存第一个向导数据?首先,您需要浏览向导的当前记录及其行。然后根据需要写入值 用向导对象返回当前id 尝试以下技巧:
#apply button method logic
def apply_data(self, cr, uid, ids, context=None):
if not context:
context = {}
ctx = context.copy()
for wizard in self.browse(cr, uid, ids[0], context=context):
for line in wizard.one2many_field:
line.write({
'field_name': field_value
})
dummy, view_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'module_name', 'wizard_form_view_name')
return {
'name':_("Name of your Wizard"),
'view_mode': 'form',
'view_id': view_id,
'view_type': 'form',
'res_id': ids and ids[0] or False,
'res_model': 'wizard.object.name',
'type': 'ir.actions.act_window',
'nodestroy': True,
'target': 'new',
'context': ctx
}
注:
您还可以更新上下文值
应用按钮类型必须是执行方法逻辑的对象。如何使用按钮打开“行”向导:通过返回操作字典?如果是这样,只需通过单击“应用”将父向导作为操作字典(目标为“新建”)返回,按钮类型应为“对象”,与另一个按钮类似。是否对给定的答案有任何反馈?谢谢!我猜
apply\u data
必须是从自定义向导中的应用按钮调用的方法。但在此自定义向导中没有One2many字段。One2many字段位于“父”向导中。