如何将输入框值传递给OpenERP中的按钮操作函数?

如何将输入框值传递给OpenERP中的按钮操作函数?,openerp,Openerp,弹出表单上有一个标有“原件”的输入框,其中包含键入的值“105-0045”,并附有图片。按钮单击操作代码位于函数action_replace()中。单击“替换”按钮时,如何将输入框值传递给按钮函数action_replace() 以下是定义输入框的XML代码: 替换.all.in.BOM.form 产品模板 形式 替换BOM表中的所有内容 ir.actions.act\u窗口 产品模板 形式 新的 替换BOM表中的所有内容 以下是py代码的一部分: def default\u get(se

弹出表单上有一个标有“原件”的输入框,其中包含键入的值“105-0045”,并附有图片。按钮单击操作代码位于函数action_replace()中。单击“替换”按钮时,如何将输入框值传递给按钮函数action_replace()

以下是定义输入框的XML代码:


替换.all.in.BOM.form
产品模板
形式
替换BOM表中的所有内容
ir.actions.act\u窗口
产品模板
形式
新的
替换BOM表中的所有内容
以下是py代码的一部分:

def default\u get(self、cr、uid、fields、context=None):
product\u obj=self.pool.get('product.template')
record_id=context和context.get('active_id',[])或[]
res={}
对于产品对象浏览中的产品(cr、uid、记录ID、上下文=上下文):
如果字段中有“默认_代码”:
#“default_code”中是该弹出窗口的字段名
res.update({'default\u code':product.default\u code,'name':product.name,'uom\u id':product.uom\u id.id,
“uom_po_id”:product.uom_po_id.id,“type”:product.type,“categ_id”:product.categ_id.id})
返回res
def操作\u替换(自身、cr、uid、ids、上下文=无):
txt_值=“”
对于self.browse中的记录(cr、uid、ID、context=context):
txt_值=record.original_id
返回{
'type':'ir.actions.act_window',
'res_model':'product.template',
“名称”:(“替换BOM表中的所有内容”),
“res_id”:id[0],
“视图类型”:“表单”,
“查看模式”:“表单”,
“视图id”:1212,
'目标':'新',
“nodestroy”:没错,
“上下文”:上下文
}

每当单击按钮时,系统的默认行为是先保存数据,然后执行按钮单击功能。因此,单击按钮,您将找到当前记录的“ID”。下面是获取该文本框值的方法

def action\u replace(self、cr、uid、ids、context=None):
对于self.browse中的记录(cr、uid、ID、context=context):
txt_值=record.original
返回真值

不知怎的,它不起作用。我试过输入框的名称和id,比如record.original\u name和record.original\u id。我在问题中添加了XML代码,以便您可以查看输入框的定义。我收到一个错误:“AttributeError:'product.template'对象没有属性'original_id'”。为什么模型名为'product.template'?我想这就是问题所在?发布向导的.py代码。我有一个模型“product.template”,因为这是主视图中的模型,我在弹出窗口中从中获取默认\u代码。你想要什么型号的?我没有使用向导。它只是一个从菜单中启动的窗体、act_窗口。在这里的问题内容中,我为这个表单添加了更多的XML代码和py代码。在py代码中,我只有两个与此表单相关的函数。我认为您出错了,弹出窗口意味着一个向导,我不明白您为什么将模型名称用作“product.template”。您已经发布了您的.py文件代码,发布了该向导的类名“\u name”属性。我没有任何其他用于此功能的代码。我把我到目前为止写的东西贴在这里。没有我用于此表单的属性“\u name”。我在这里发布的py代码位于product_模板类中。也许这是错误的。如果不是“product.template”模型,您建议使用哪种模型?