Python 如何从Odoo8中的其他向导调用向导?

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 现在,我单击我制作的第一行按钮(每

我有一个向导,其中有一个one2many字段。我在one2many的每一行都做了一个按钮,它调用了我做的另一个向导。此向导用于修改选定行的某些值

我的目的是,当您单击我的向导的应用按钮时,返回第一个向导以及新的更改

例如:

第一个向导有一个one2many字段,其中包含三条记录:

  • 产品A | 1 ud |源位置X |目的位置Y |标段A1
  • 产品B | 2 ud |源位置X |目的位置Y |标段B1
  • 产品C | 3 ud |源位置X |目的位置Y |批次C1
现在,我单击我制作的第一行按钮(每行有一个),然后 我的向导已打开。在这里,我可以修改第一行的批次( 一个带有产品A)。想象一下,我将批次设置为A0,然后单击应用

我应该返回到父向导,并看到相同的数据,除了 所做的更改。因此,结果将是:

  • 产品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字段位于“父”向导中。