Button 奥多8号及以上。不使用“创建”和“保存”按钮自动创建和保存

Button 奥多8号及以上。不使用“创建”和“保存”按钮自动创建和保存,button,save,openerp,Button,Save,Openerp,我使用SoapPY从第三方服务恢复数据,并将其保存在字典结构中。恢复的数据具有one2many结构,类似于销售订单结构(标题行)。 我在填充一些键值后单击自定义按钮时会这样做。我禁用了创建和保存按钮,因为我需要不同的表单行为。我只需要获取数据并手动将其保存在相应的表中(标题和行)。我不希望自定义按钮像默认情况下任何按钮那样自动执行创建方法。 有什么建议吗 如果您想避免Odoo的ORM,那么就直接使用sql。通过创建和保存记录,我们指的是同一件事。write方法对已创建的记录集进行操作。我看到:

我使用SoapPY从第三方服务恢复数据,并将其保存在字典结构中。恢复的数据具有one2many结构,类似于销售订单结构(标题行)。 我在填充一些键值后单击自定义按钮时会这样做。我禁用了创建和保存按钮,因为我需要不同的表单行为。我只需要获取数据并手动将其保存在相应的表中(标题和行)。我不希望自定义按钮像默认情况下任何按钮那样自动执行创建方法。 有什么建议吗


如果您想避免Odoo的ORM,那么就直接使用sql。通过创建和保存记录,我们指的是同一件事。write方法对已创建的记录集进行操作。我看到:

返回写入(方便)

这是什么?您是否定义了可在某处调用的
write
?您正在导入写入方法吗?write方法的调用通常类似于
self.write({'my\u field':its\u value})
,其中self是一个

因此,单击按钮,您可以:

1) 使用
self.create({field1:value1,field2:value2,…})


2) 使用self.env.cr.execute(r“insert raw sql here”)在表中创建所需的记录(也就是说,如果你不想实际使用Odoo的ORM,每个Odoo/openerp模型都有一个
create
方法,你尝试过吗?事实上,你要避免的按钮实际上调用了相同的
create
方法我从表单中取下了按钮,我不想自定义按钮自己创建。我想手动创建。是的,我没有如果你展示一些代码,也许我们可以更好地理解你,帮助你走出困境。我编辑了我的帖子来添加代码。我还添加了表单视图
def custom_button(self):

    # Get the info from third party using SOAPPy
    WSDLFile = "http://www.expedientes.poderjudicial.gub.uy/wsConsultaIUE.php?wsdl"
    proxy = WSDL.Proxy(WSDLFile)
    UIE = str(self.int_sede) + '-' + str(self.int_nro_registro) + '/' + str(self.int_ano)
    soap_exp = proxy.consultaIUE(UIE)

    # Set variables
    str_origen = soap_exp[1]
    str_caratula = soap_exp[3]
    str_abogado_actor = soap_exp[4]
    str_abogado_demandado = soap_exp[5]
    movimientos = soap_exp[6]

    mov_exp = []
    for mov in movimientos:
        mov_exp.append ((0, 0, {'str_sede': mov['sede'],
                          'date_venc': mov['vencimiento'],
                          'str_decreto': mov['decreto'],
                          'date_mov': mov['fecha'],
                          'str_movimiento': mov['tipo']}))

    expediente = {'int_sede': self.int_sede, 'int_nro_registro': self.int_nro_registro, 'int_ano': self.int_ano,
                   'str_origen': str_origen,
                   'str_caratula': str_caratula,
                   'str_abogado_actor': str_abogado_actor,
                   'str_abogado_demandado': str_abogado_demandado,
                   'movimiento_ids': mov_exp
                 }

     return write(expediente)