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!