CRUD en Odoo (Create, Write y Unlink) - leninsvg/Odoo GitHub Wiki
Se entiene que crud esta conformado por Insert ,Update and Delete
Crear (Create)
Para implementar el insert se utiliza la siguiente funcion
@api.model
def create(self, vals):
rec = super(GolLocalAccount, self).create(vals)
if(rec.fatherAccount.code is not False):
rec.code=str(rec.fatherAccount.code)+'.'+rec.code
# ...
if(str(rec.type) == 'totalizer'):
rec.code=rec.code+'.'
return rec
En esta funcion se utiliza la variable rec para definir el objeto que en este caso es GolLocalAccount quedando de la siguiente manera
rec = super(GolLocalAccount, self).create(vals)
Una ves que asignamos a rec el objeto este puede ser usado para realizar validaciones cambios en los atributos que lo conforman
por medio del rec se puede acceder a los atributos de un objeto, para lo cual se usa:
rec.field
Para completar esto se rebe retornar el rec con todos los cambios que se desseo.
Nota: En este caso para el rec solo cambie el atributo codigo, el resto de atributos que conformana el objeto se insertan sin ningun cambio, de tal manera que solo se cambia lo que se nesesita
Eliminar (Unlink)
Por medio de este método eliminamos registros. La sintaxis para su uso es la siguiente.
auxOrganizerType= self.env['gol.organizer.type'].search([])
auxItemsOrganizerAccount=self.env['gol.item.organizer.account'].search(['idItemOrganizerAccount','=',auxAccount.id](/leninsvg/Odoo/wiki/'idItemOrganizerAccount','=',auxAccount.id))
auxItemsOrganizerAccount.unlink()
Como se eviden primero busco el objeto que quiero eliminar. Y a continuacion ejecuto el metodo unlik para borrar su registro.
Ejemplos de Crud en Odoo
Implementación de la API de Odoo Utilizando Metaclases y Decoradores http://poncesoft.blogspot.com/2015/05/api-odoo-metaclases-y-decodarores.html
Sobre escribir metodos del ORM de Odoo https://codeandoando.com/sobre-escribir-metodos-del-orm-de-odoo/
https://github.com/odoo/odoo/blob/52484b0132ee3e0063dd67cc3c2eb434f99f5db8/addons/account_check_printing/account_journal.py#L39 Welcome to the Odoo wiki!