如何将值从字段传递给 Odoo 13 中的向导?

Posted

技术标签:

【中文标题】如何将值从字段传递给 Odoo 13 中的向导?【英文标题】:How to pass value from field to a wizard in Odoo 13? 【发布时间】:2020-12-19 09:29:21 【问题描述】:

我为两个表单视图使用两个模型。 我在下面的模型 1 中有这个字段

name = fields.Many2one('hr.employee', string="USERNAME", required=True)

我想在单击按钮时将其值传递给向导。代码如下:

def create_field(self):

   return 
       'name': self.name,
       'view_mode': 'form',
       'res_model': 'dieu.chinh',
       'view_id': False,
       'res_id': wiz.id,
       'res_id' : self.id,
       'context': 'current_id': self.id,
       'target': 'current',
       'type': 'ir.actions.act_window',
   

XML 文件中的按钮:

button type="object" string="SUBMIT" name="create_field" class="oe_highlight"/>

点击按钮后,可以用模型2打开预期的表单视图,但仍然没有显示上一个表单中选择的值。

那么...

请帮忙!

谢谢!

【问题讨论】:

通过create_field 中的上下文传递值。 'context': 'current_id': self.id, 'default_name': self.name, 您是否成功地将字段中的值传递给向导? 嗨,肯利。谢谢您的支持。我尝试过使用您的代码,但在单击按钮后出现 hr.employee 错误。像这样的错误: -->> psycopg2.DataError: invalid input syntax for integer: "hr.employee(20,)" LINE 1: ...te" FROM "hr_employee" WHERE "hr_employee".id IN ('hr .雇用... ^ 检查这个答案会对你有所帮助,在 13.0 中也可以使用。 ***.com/questions/62529650/… name 字段是 Many2one 字段,因此请尝试传递其 id,如下所示:'context': 'current_id': self.id, 'default_name': self.name.id, 【参考方案1】:

试试这个:

 def create_field(self):
    form_view = self.env.ref("your_wizard_form_view_external_id")
    
    return
       'name': 'Wizard Name',
       'views': [
            (form_view.id, 'form'),
            ],
       'res_model': 'dieu.chinh',
       'target': 'new',
       'type': 'ir.actions.act_window',
       'context': 
             'default_wizard_field_name': self.name.id,  # for passing Many2One field context value in Wizard form view
            ,
       

'default_wizard_field_name': self.name.name # 用于在向导表单视图中传递 Char 字段上下文值

【讨论】:

以上是关于如何将值从字段传递给 Odoo 13 中的向导?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用会话将值从一个php页面传递到另一个页面

Flutter:如何将值从 streamprovider / listview builder 传递给另一个类

如何将值从其他活动传递给 viewpager 片段?

如何将值从initstate传递给flutter中的小部件

JSP 将值从表传递到表单

如何将值从java传递给PHP?