Campos y widgets

Los campos dan estructura a los modelos de una base de datos. Imagine que un modelo es una tabla o una hoja de cálculo, los campos son las columnas donde los datos se almacenan en los registros (por ejemplo, filas). Los campos también definen el tipo de datos que se almacenan en ellos. Sus widgets son los que definen cómo se presentan y se da formato a los datos en la interfaz de usuario.

Desde un punto de vista técnico, hay 15 tipos de campos en Odoo. Sin embargo, puede elegir entre 20 campos en Studio, pues algunos tipos de campos están disponibles más de una vez con un widget predeterminado distinto.

Truco

Solo puede agregar nuevos campos en las vistas de Formulario y Lista. En otras vistas, solo puede agregar campos existentes (campos que ya existen en el modelo).

Campos simples

Los campos simples contienen valores básicos, como texto, números, archivos, etc.

Nota

Algunas veces puede seleccionar widgets no predeterminados, estos aparecen como viñetas y subtítulos a continuación.

Texto (char)

El campo de Texto se utiliza para textos cortos que incluyen cualquier carácter. Aparece una línea de texto cuando se completa el campo.

  • Insignia: muestra el valor dentro de una forma redonda, similar a una etiqueta. El valor no se puede editar en la interfaz de usuario, pero puede establecer un valor predeterminado.

  • Copiar al portapapeles: los usuarios pueden copiar el valor al hacer clic en un botón.

  • Correo electrónico: el valor se convierte en un enlace mailto en el que se puede hacer clic.

  • Imagen: muestra una imagen que utiliza una URL. El valor no se puede editar de forma manual, pero se puede establecer un valor predeterminado.

    Nota

    Esto funciona de forma diferente a seleccionar el campo de imagen directamente, ya que la imagen no se almacena en Odoo al utilizar un campo Texto con el widget Imagen. Por ejemplo, puede ser útil si desea ahorrar espacio en disco.

  • Teléfono: el valor se convierte en un enlace tel en el que se puede hacer clic.

    Truco

    Seleccione Habilitar SMS para agregar la opción de enviar un SMS desde Odoo junto al campo.

  • URL: el valor se convierte en una URL en la que se puede hacer clic.

Example

Ejemplos de campos de texto con diferentes widgets

Texto multilínea (text)

El campo de Texto multilínea se utiliza para textos más largos que contienen cualquier tipo de carácter. Aparecen dos líneas de texto en la interfaz de usuario cuando se completa el campo.

  • Copiar al portapapeles: los usuarios pueden copiar el valor al hacer clic en un botón.

Example

Ejemplos de campos de texto multilínea con diferentes widgets

Entero (integer)

El campo entero se utiliza para todos los números enteros (positivos, negativos o cero, sin decimales).

  • Círculo de porcentaje: muestra el valor en un círculo de porcentaje, por lo general para valores calculados. El valor no se puede editar en la interfaz de usuario, pero puede establecer un valor predeterminado.

  • Barra de progreso: muestra el valor junto a una barra de porcentaje, por lo general para valores calculados. El campo no se puede editar de forma manual, pero puede establecer un valor predeterminado.

  • Manija: muestra un icono de manija para ordenar registros de forma manual en la vista de lista.

Example

Ejemplos de campos entero con diferentes widgets

Decimal (float)

El campo de decimal se utiliza para números decimales (positivos, negativos o cero, con decimales).

Nota

Los números decimales se muestran en la interfaz de usuario con dos decimales después del punto, pero se almacenan en la base de datos con mayor precisión.

  • Monetario: Este es similar a usar el campo monetario. Le recomendamos utilizar este último, ya que ofrece más funciones.

  • Porcentaje: muestra un carácter de porcentaje % después del porcentaje.

  • Porcentaje circular: muestra el valor dentro de un porcentaje circular, por lo general para valores calculados. El campo no se puede editar de forma manual, pero puede establecer un valor predeterminado.

  • Barra de progreso: muestra el valor junto a una barra de porcentaje, por lo general para valores calculados. El campo no se puede editar de forma manual, pero puede establecer un valor predeterminado.

  • Tiempo: el valor debe seguir el formato hh:mm con un máximo de 59 minutos.

Example

Ejemplos de campos decimales con diferentes widgets

Monetario (monetary)

El campo Monetario se utiliza para todos los valores monetarios.

Nota

Cuando agrega por primera vez un campo Monetario, se le invita a agregar un campo de Divisa si no existe ninguno en el modelo. Odoo le ofrece agregar el campo de Divisa por usted. Una vez agregado, agregue el campo Monetario otra vez.

Example

Ejemplo de un campo Monetario junto a su campo de Divisa

Html (html)

El campo Html se utiliza para agregar texto que se puede editar mediante el editor HTML de Odoo.

  • Texto multilínea: deshabilita el editor HTML de Odoo para permitir editar el HTML sin procesar.

Example

Ejemplos de campos html con diferentes widgets

Fecha (date)

El campo Fecha se usa para seleccionar una fecha en el calendario.

  • Días restantes: Muestra el número de días que faltan antes de la fecha seleccionada (por ejemplo, en 5 días), con base en la fecha actual. Este campo debe estar configurado con Solo lectura.

Example

Ejemplos de campos de fecha con diferentes widgets

Fecha y hora (datetime)

El campo Fecha y hora se utiliza para seleccionar una fecha en el calendario y una hora en un reloj. Si no se establece ninguna hora, se utilizará la hora actual del usuario.

Truco

Además de las propiedades generales, hay algunas propiedades específicas disponibles para los campos Fecha y hora que tienen configurado el widget Fecha y hora o Rango de fecha.

Rango de fecha (daterange)

El widget Rango de fecha se utiliza para mostrar un periodo definido por una fecha de inicio y una fecha de fin en una sola línea. Un rango de fechas puede tener una fecha obligatoria de inicio y fin, por ejemplo, para un evento de varios días, o permitir una fecha opcional de inicio o fin, por ejemplo, para una intervención de servicio o una tarea del proyecto.

Agregar un rango de fechas requiere dos campos: un campo Fecha y hora con el widget Rango de fecha configurado y otro campo que se seleccione como la fecha de inicio o de finalización. Este campo subyacente puede ser un campo Fecha o Fecha y hora existente, o uno creado para este propósito en específico.

Para agregar un rango de fechas:

  1. Identifique un campo existente Fecha o Fecha y hora que pueda usarse como campo subyacente de fecha de inicio o de finalización, o agregue uno nuevo. Si el rango de fecha:

    • tiene fechas de inicio y de finalización obligatorias, este campo puede ser la fecha de inicio o la fecha de finalización. El resultado es el mismo.

    • permite indicar una fecha de inicio o finalización opcional, este campo es la fecha de inicio o finalización, respectivamente.

    Truco

    Para evitar mostrar la misma información dos veces puede hacer invisible el campo de fecha de inicio o de finalización al habilitar la función Invisible o al eliminarlo de la vista si hace clic en Eliminar de la vista.

  2. Agregue un campo Hora y fecha y configure el campo Widget con Rango de fecha.

  3. Agregue la etiqueta correspondiente.

  4. Seleccione el campo de fecha de inicio y finalización correspondiente en el menú desplegable Campo de fecha de inicio o Campo de fecha de finalización.

  5. Seleccione la opción Siempre en rango si el intervalo de fechas debe tener una fecha obligatoria de inicio y finalización.

  6. Actualice cualquier otra propiedad general o propiedad específica de los campos de Fecha y hora si es necesario y luego haga clic en el botón Cerrar que se encuentra en la esquina superior derecha de la pantalla.

Example

Ejemplos de los campos de fecha y hora con diferentes widgets

Dias restantes (remaining_days)

El widget Días restantes muestra el número de días que faltan antes de la fecha seleccionada (por ejemplo, en 5 días) con base en la fecha y hora actual. Este campo debe estar configurado con Solo lectura.

Casilla (boolean)

El campo Casilla se utiliza cuando un valor solo puede ser verdadero o falso y esto se indica al seleccionar o desmarcar una casilla.

  • Botón: muestra un botón de opción. El widget funciona sin tener que cambiar al modo de edición.

  • Activar: muestra un botón de activación. El widget funciona sin tener que cambiar al modo de edición.

Example

Ejemplos de campos de casilla con diferentes widgets

Seleccionar (selection)

El campo Selección se utiliza cuando los usuarios deben seleccionar un valor único de un grupo de valores predefinidos.

  • Insignia: muestra el valor dentro de una forma redonda, similar a una etiqueta. El valor no se puede editar en la interfaz de usuario, pero puede establecer un valor predeterminado.

  • Insignias: muestra todos los valores seleccionables dentro de formas rectangulares, organizadas de manera horizontal.

  • Prioridad: Muestra símbolos de estrellas en lugar de valores y se utilizan para indicar un nivel de importancia o de satisfacción. Tiene el mismo efecto que seleccionar el campo Prioridad, aunque este último ya tiene cuatro valores de prioridad predefinidos.

  • Radio: muestra todos los valores seleccionables como los botones de opción.

    Truco

    Los botones de opción están organizados en vertical de forma predeterminada. Seleccione Mostrar horizontalmente para cambiar su orientación.

  • Barra de estado: Muestra todos los valores seleccionables al mismo tiempo que una barra de progreso de flecha.

    Truco

    Los valores en la barra de estado se pueden seleccionar de forma predeterminada. Desactive la opción Se puede hacer clic para evitar que el valor se edite en la interfaz de usuario.

Example

Ejemplos de campos de selección con diferentes widgets

Prioridad (selection)

El campo Prioridad se utiliza para mostrar un sistema de calificación de tres estrellas que sirve para indicar el nivel de importancia o de satisfacción. Este tipo de campo es un campo de selección con el widget Prioridad seleccionado de forma predeterminada y cuatro valores de prioridad predefinidos. Por lo tanto, los widgets Insignia, Insignias, Opción y Selección tienen los mismos propósitos que los descritos en Selección.

Truco

Para cambiar el número de estrellas disponibles al agregar o eliminar valores, haga clic en Editar valores. Tenga en cuenta que el primer valor es igual a 0 estrellas (es decir, cuando no se selecciona ninguna estrella), por lo que tener cuatro valores da como resultado un sistema de clasificación de tres estrellas.

Example

Ejemplo de un campo de prioridad

Archivo (binary)

El campo Archivo se utiliza para subir cualquier tipo de archivo, o para firmar un formulario (widget Firmar).

  • Imagen: Los usuarios pueden subir un archivo de imagen que aparecerá en la vista de formulario. Esto tiene el mismo propósito que usar el campo Imagen`.

  • Lector de PDF: los usuarios pueden subir un archivo PDF, que puede ver desde la Vista de formulario.

  • Firmar: Los usuarios pueden firmar el formulario de forma electrónica. Esto tiene el mismo resultado que seleccionar el campo Firmar.

Example

Ejemplos de campos de archivo con diferentes widgets

Imagen (binary)

El campo Imagen se utiliza para subir una imagen y mostrarla en la vista de formulario. Este tipo de campo es un campo de archivo que cuenta con el widget Imagen seleccionado de forma predeterminada. Por lo tanto, los widgets Archivo, Lector de PDF y Firma tienen los mismos propósitos que los descritos en Archivo.

Truco

Para cambiar el tamaño de visualización de las imágenes subidas, seleccione Pequeño, Medio o Grande en la opción Tamaño.

Firmar (binary)

El campo Firmar se utiliza para firmar el formulario de forma electrónica. Este tipo de campo es un campo de archivo que cuenta con el widget Firma seleccionado de forma predeterminada. Por lo tanto, los widgets Archivo, Imagen y Lector de PDF tienen los mismos propósitos que los descritos en Archivo.

Truco

Para que los usuarios tengan la opción Autocompletar disponible al tener que trazar su firma, seleccione uno de las opciones disponibles en Autocompletar con (Texto, Many2One y Campo relacionado solo en el modelo). La firma se generará de manera automática con los datos del campo seleccionado.

Campos de relación

Los campos de relación se utilizan para vincular y mostrar los datos de los registros de otro modelo.

Nota

Algunas veces puede seleccionar widgets no predeterminados, estos aparecen como viñetas a continuación.

Many2One (many2one)

El campo Many2One se utiliza para vincular otro registro (de otro modelo) al registro que se está editando. Por lo tanto, se mostrará el nombre del registro del otro modelo en el registro que se está editando.

Example

En el modelo Orden de venta, el campo Cliente es un campo Many2One que dirige al modelo Contacto. Esto permite vincular varias órdenes de venta a un contacto (cliente).

Diagrama que muestra una relación many2one

Truco

  • Para evitar que los usuarios creen un nuevo registro en el modelo vinculado, marque Desactivar creación.

  • Para evitar que los usuarios abran los registros en una ventana emergente, marque Desactivar apertura.

  • Para ayudar a los usuarios a seleccionar únicamente el registro correcto, haga clic en Dominio para crear un filtro.

  • Insignia: muestra el valor dentro de una forma redonda, similar a una etiqueta, y no se puede editar en la interfaz del usuario.

  • Radio: muestra todos los valores seleccionables como los botones de opción.

One2Many (one2many)

El campo One2Many se usa para mostrar las relaciones existentes entre un registro del modelo actual y varios registros de otro modelo.

Example

Podría añadir un campo One2Many en el modelo Contacto para ver varias órdenes de venta de un cliente.

Diagrama que muestra una relación one2many

Nota

Para utilizar un campo One2Many es necesario que los dos modelos ya estén relacionados mediante un campo Many2One. Las relaciones One2Many no existen por separado, ya que se realiza una búsqueda inversa de las relaciones Many2One existentes.

Líneas (one2many)

El campo Líneas se utiliza para crear una tabla con filas y columnas (por ejemplo, las líneas de productos de una orden de venta).

Truco

Para modificar las columnas, haga clic en el campo Líneas y luego en Editar vista de lista. Haga clic en Editar vista de formulario para editar el formulario que aparece cuando un usuario hace clic en Agregar una línea.

Example

Ejemplo de un campo de líneas

Many2Many (many2many)

El campo Many2Many se utiliza para vincular varios registros de otro modelo con varios registros en el modelo actual. Los campos Many2Many pueden utilizar Desactivar creación, Desactivar apertura y Dominio al igual que los campos Many2One.

Example

En el modelo Tarea, el campo Asignados es un campo Many2Many que apunta al modelo Contacto. Esto permite que un solo usuario pueda estar asignado a muchas tareas y que muchos usuarios estén asignados a una sola tarea.

Diagrama que muestra relaciones many2many
  • Casillas: Los usuarios pueden seleccionar varios valores con las casillas.

  • Etiquetas: Los usuarios pueden seleccionar varios valores que aparecen en formas redondeadas, también conocidas como etiquetas. Esto tiene el mismo efecto que seleccionar el campo Etiquetas.

Etiquetas (many2many)

El campo Etiquetas se utiliza para mostrar varios valores de otro modelo y aparecen en formas redondeadas, también conocidas como etiquetas. Este tipo de campo es un campo Many2Many que cuenta con el widget Etiquetas seleccionado de forma predeterminada. Por lo tanto, los widgets Casillas y Many2Many tienen los mismos propósitos que los descritos en Many2Many.

Truco

Para mostrar etiquetas con diferentes colores de fondo, haga clic en Usar colores.

Example

Ejemplo de un campo de etiquetas

Propiedades

Propiedades generales

  • Invisible: Habilite esta propiedad cuando no sea necesario que un campo aparezca en la interfaz de usuario. Esto ayuda a despejar la interfaz al mostrar solo los campos que son necesarios para una situación específica.

    El atributo Invisible también funciona en Studio. Para ver los campos ocultos dentro de Studio, haga clic en la pestaña Vista de una vista y seleccione Mostrar elementos invisibles.

  • Obligatorio: Habilite esta propiedad si es necesario que el usuario complete un campo antes de poder continuar.

  • Solo lectura: Habilite esta propiedad si los usuarios no deben modificar un campo.

Nota

Puede optar por habilitar las opciones Invisible, Obligatorio y Solo lectura solo para ciertos registros si hace clic en Condicional y crea un filtro.

Example

En la vista Formulario del modelo Contacto, el campo Título solo aparece cuando se selecciona una Persona física, ya que ese campo no sería útil para un contacto tipo Empresa.

  • Etiqueta: El nombre del campo en la interfaz de usuario. Este no es el nombre que se utiliza en la base de datos de PostgreSQL. Para ver y cambiar este último, habilite el modo de desarrollador y edite el nombre técnico.

  • Información de ayuda: Agregue una descripción para explicar el propósito de un campo. El texto aparece dentro de un cuadro de información al pasar el cursor sobre el signo de interrogación que se encuentra junto a la etiqueta del campo.

  • Widget: Si desea cambiar la apariencia o función predeterminada de un campo, seleccione uno de los widgets disponibles.

  • Marcador de posición: Agregue un texto de ejemplo para mostrar un ejemplo de cómo completar un campo. El texto aparece en gris claro hasta que escriba un valor.

  • Valor predeterminado: Agregue un valor para mostrar un valor predeterminado en un campo al crear un registro.

  • Permitir visibilidad a los grupos: Seleccione uno o más grupos de acceso de usuarios para limitar qué usuarios pueden ver el campo.

  • Prohibir visibilidad a los grupos: Seleccione uno o más grupos de acceso de usuarios para restringir que ciertos usuarios vean el campo.

Propiedades para los campos Fecha y hora

Hay algunas propiedades específicas que están disponibles para los campos Hora y fecha que tienen configurado el widget de hora y fecha o de rango de fechas:

  • Precisión mínima: Determine la unidad menor de la fecha a seleccionar en el selector de fechas. Los valores que puede elegir son Día, Mes, Año o Década. Si no selecciona ningún valor, el usuario debe seleccionar un día en el selector de fecha.

  • Precisión máxima: Determine la unidad mayor de la fecha que se puede utilizar para navegar por el selector de fechas. Los valores que puede elegir son Día, Mes, Año o Década. Si no selecciona ningún valor, el usuario puede navegar por el selector de fecha por década.

  • Advertencia para futuras fechas: Active esta propiedad para mostrar un icono de advertencia al seleccionar una fecha futura.

  • Visualización condensada: Habilite esta propiedad para mostrar los días, meses y horas sin ceros, por ejemplo, 4/2/2025 8:05:00 en vez de 04/02/2025 08:05:00.

  • Mostrar hora: Esta propiedad está habilitada de forma predeterminada en los campos Fecha y hora. Deshabilite esta propiedad en los campos que solo son de lectura para que solo aparezca la fecha. Esto puede ayudar a que la vista de lista esté más despejada, por ejemplo.

  • Mostrar segundos: Esta propiedad está habilitada de forma predeterminada en los campos Fecha y hora. Deshabilítela para que solo aparezcan la hora y los minutos.

  • Intervalo de tiempo: Introduzca un valor para determinar los intervalos de minutos que aparecen en el selector de tiempo. Por ejemplo, escriba 15 para permitir intervalos de cuartos de hora. El valor predeterminado es 5 minutos.

  • Fecha mínima aceptada: Ingrese la fecha más antigua que se puede elegir en el selector de fechas con el formato ISO, es decir, AAAA-MM-DD. Si la fecha mínima siempre debe ser la fecha actual, ingrese hoy. Las fechas anteriores a la fecha mínima aceptada aparecen atenuadas en el selector de fechas.

  • Fecha aceptada más reciente: Ingrese la fecha más reciente que se puede elegir en el selector de fechas con el formato ISO, es decir, AAAA-MM-DD. Si la fecha más reciente siempre debe ser la fecha actual, ingrese hoy. Las fechas posteriores a la fecha más reciente aceptada aparecen atenuadas en el selector de fechas.