Odoo, OpenERP, Programación

Sobreescribir Metodos Odoo v8 Nueva API

En este post hablare sobre heredar y sobrescribir métodos con la versión 8 de la API, la versión mas nueva, hay algunas diferencias con la anterior.

Sobrescribir método write()

class res_partner(models.Model):
    _inherit='res.partner'

    @api.multi 
    def write(self, values):
        if(condicion is True):
            values.update['campo'] is True # Actualizamos values
        return super(res_partner, self).write(values) #llamamos al método del padre con los valores actualizados

Sobrescribir el método write es muy sencillo, incluimos el decorador @api.multi, esto es muy importante, y luego sobrescribimos write(), en values se guardaran los valores que se van a escribir y sobre los que operaremos con values.update[‘indice’], cuando terminemos, llamamos al método write de la clase padre y listo.

Sobreescribir metodo create()

class res_partner(models.Model):
    _inherit='res.partner'

    @api.model
    def create(self, vals, context=None):
        new_id = super(res_partner, self).create(vals)
        new_object = self.env['res.partner'].browse(new_id.id)
        if new_object.campo1:
            new_object.write({'campo2': valor,'campo3':"Cadena"})
        return new_id

Hacer lo propio con create es un poco mas complicado, en este caso tenemos que incluir el decorador @api.model, llamamos al método create del padre para obtener el id del nuevo registro, y a través de browse podemos acceder a los valores del registro en creación, cuando terminamos, retornamos la id del nuevo registro.

Anuncios
Estándar

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s