Ir al contenido

Guía del ORM de Odoo: mapeo objeto-relacional

Table of contents

No titles in the blog post

El ORM de Odoo (mapeo objeto-relacional) es la forma de interactuar con la base de datos y realizar operaciones sobre ella en la plataforma Odoo. El ORM aplica los principios de la programación orientada a objetos (POO) a las operaciones de base de datos y representa las tablas como objetos de Python. Así, las operaciones son más programáticas y legibles, y los desarrolladores las gestionan con más facilidad.

Estos son los conceptos básicos y el funcionamiento del ORM de Odoo:

  1. Modelo
    Un modelo es una clase de Python que representa una tabla de la base de datos. Cada módulo de Odoo contiene uno o más modelos, que crean y gestionan las tablas de la base de datos. Este es un ejemplo sencillo de modelo:
    from odoo import models, fields

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

    # Custom fields
    is_company = fields.Boolean(string='Is a Company', default=False)
    customer_code = fields.Char(string='Customer Code')
  2. Campo
    Los campos definen el tipo y el comportamiento de los datos de un modelo y representan las columnas de la tabla. Por ejemplo, en un modelo de clientes se pueden definir campos como "name", "email" y "phone":
  3. Registro
    Un registro representa una entrada concreta de un modelo en la base de datos y contiene los valores de los campos definidos por el modelo. Por ejemplo, un registro de cliente se crea así:
    new_customer = self.env['res.partner'].create({
    'name': 'John Doe',
    'email': '[email protected]',
    'phone': '123456789'
    })
  4. Dominio y contexto
    • Dominio: sirve para filtrar registros según ciertas condiciones. Por ejemplo, filtrar registros según el valor de un campo:
      domain = [('is_company', '=', True)]
      companies =
      self.env['res.partner'].search(domain)
    • Contexto: sirve para indicar cómo deben comportarse las operaciones. Por ejemplo, fijar el idioma del usuario u otros ajustes mediante el contexto:
      context = {'lang': 'en_US'}
      products =
      self.env['product.product'].with_context(context).search([])
  5. Operaciones CRUD (crear, leer, actualizar, eliminar)
    • Crear: crear un registro nuevo:
      new_customer = self.env['res.partner'].create({
      'name': 'Jane Doe',
      'email': '[email protected]' })
    • Leer: leer registros:
      customer = self.env['res.partner'].browse(1)
      print(customer.name)
    • Actualizar: actualizar registros:
      customer.write({'email': '[email protected]'})                      
    • Eliminar: eliminar registros:
      customer.unlink()                              


Conclusión

El ORM de Odoo da a los desarrolladores flexibilidad y comodidad para gestionar la base de datos, lo que facilita desarrollar y personalizar aplicaciones con rapidez. Con el ORM, las operaciones de base de datos se gestionan con código Python de forma más clara y sostenible.

Comentarios

Iniciar sesión dejar un comentario