Insertar Registro Directamente en Base de Datos y Retornar el ID
En ocasiones es necesario optimizar un poco nuestro cĆ³digo en base a Querys directos a base de datos, muchas veces insertamos registros, pero es difĆcil conocer el id que acabamos de insertar, un error muy comĆŗn con la programaciĆ³n es consultar el ultimo ID de la tabla, esto puede darnos la soluciĆ³n cuando solo trabajamos nosotros en la Base de Datos, pero en un entorno real, con concurrencia a la base de datos, el ultimĆ³ ID seria muy variable, para esto podemos apoyarnos de PostgreSQL y el comando RETURNING, este comando nos retorna cualquier valor, en este caso la columna serial ID, la estructura es muy simple:
self.env.cr.execute(""" INSERT INTO res_partner (name,customer) VALUES ('PonceSoft', True) RETURNING id; """) my_id=self.env.cr.fetchall()[0][0]
La variable my_id es el ID que acabamos de insertar en la Base de Datos.