我正在使用SoapPY从第三方服务恢复数据,并将其保存在字典结构中。恢复的数据具有one2many结构,类似于销售订单结构(标题行)。 在填写一些键值后单击自定义按钮时,我会这样做。我禁用了创建和保存按钮,因为我想要一个不同的表单行为。我只需要获取数据并手动将其保存在相应的表格中(标题和行)。我不希望自定义按钮自动执行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)
答案 0 :(得分:0)
如果你想避免使用Odoo的ORM,那么就继续使用sql。通过创建和保存记录,我们的意思是相同的事情。 write方法对已经创建的记录集进行操作。我明白了:
return write(expediente)
write
可调用吗?你导入方法写吗? write方法通常像self.write({'my_field':its_value})
一样被调用,其中self是recordset
因此,点击按钮即可:
1)使用self.create({field1:value1, field2:value2, ...})
2)使用self.env.cr.execute(r"insert raw sql here")
在表中创建所需的记录(即如果您不想实际使用Odoo的ORM