Skip to content

Modelos y Campos Básicos

Un componente clave de Odoo es la capa ORM. Esta capa evita tener que escribir manualmente la mayoría de SQL y proporciona servicios de extensibilidad y seguridad. Los objetos de negocio se declaran como modelo de extensión de clases de Python, que los integra en el sistema de persistencia automatizado.

Los modelos se pueden configurar estableciendo atributos en su definición. El atributo más importante es _name, que es obligatorio y define el nombre del modelo en el sistema Odoo. Definición de un modelo:

from odoo import models
class TestModel(models.Model):
_name = "test_model"

Esta definición es suficiente para que el ORM genere una tabla de base de datos llamada test_model. Por convención, todos los modelos se encuentran en un directorio de modelos y cada modelo se define en su propio archivo Python.

Terminal window
python3 odoo-bin --addons-path=addons -d mydb -u mymodule

Los campos se utilizan para definir qué puede almacenar el modelo y dónde se almacenan. Estos se definen como atributos en la clase modelo:

from odoo import models, fields
class TestModel(models.Model):
_name = "test_model"
_description = "Test Model"
name = fields.Char()

Hay dos amplias categorías de campos :campos “simples”, que son valores atómicos almacenados directamente en la tabla del modelo, y campos” relacionales”, que vinculan registros (del mismo modelo o de modelos diferentes).

Tipos de campos simples: Boolean, Float, Char, Text, Date and Selection.

Los atributos disponibles en todos los campos, son los más comunes:

  • string (str, default: field’s name) La etiqueta del campo en la interfaz de usuario (visible para los usuarios).
  • required (bool, default: False) Si es Verdadero, el campo no puede estar vacío. Debe tener un valor predeterminado o siempre se le debe dar un valor al crear un registro.
  • help (str, default: ”) Proporciona información sobre herramientas de ayuda de formato largo para los usuarios en la interfaz de usuario.
  • index (bool, default: False) Solicita que Odoo cree un índice de base de datos en la columna.

Es posible que haya notado que su modelo tiene algunos campos que nunca definió. Odoo crea algunos campos en todos los modelos. Estos campos son administrados por el sistema y no se pueden escribir en ellos, pero se pueden leer si son útiles o necesarios.:

  • id (Id) El identificador único para un registro del modelo.

  • create_date (Datetime) Fecha de creación del registro.

  • create_uid (Many2one) Usuario que creó el registro.

  • write_date (Datetime) Fecha de última modificación del registro.

  • write_uid (Many2one) Usuario que modificó por última vez el registro.