Campos y widgets

Fields structure the models of a database. If you think of a model as a table or spreadsheet, fields are the columns and records are the individual rows. Fields also define the type of data that is stored within them. The way in which a field’s data is presented and formatted on the UI is controlled by its widget.

With Studio, it is possible to:

Studio fields vs. property fields

Fields created using Studio are saved as columns in your Odoo database. Property fields, on the other hand, act as pseudo-fields; they are shared by all records that are linked to the same parent record (e.g., for tasks, the project, or for a product, the product category), but they are not saved as columns in your database.

Example

Adding a Deadline field to the form view of a task using Studio makes that field visible in every task in your database. Adding a Special instructions property field to a task makes the field visible in all tasks within the same project (i.e., its parent) while other projects’ tasks remain unaffected.

Field types

Fields can be broadly divided into two categories:

  • Simple fields, which contain basic values, such as text, numbers, files, etc.

  • Relational fields, which are used to link and display the data from records on another model.

AI fields

AI fields are essentially standard Odoo fields with added AI capabilities that allow their values to be generated automatically through prompts.

Campos simples

Nota

Non-default widgets, when available, are presented as bullet points or sub-headings.

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

    This works differently from selecting the Image field directly, as the image is not stored in Odoo when using a Text field with the Image widget. For example, it can be useful if you want to save disk space.

  • 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: es similar a usar el campo Monetario. Se recomienda usar este último ya que ofrece más funcionalidades.

  • 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.

  • Relative Date: expresses the field value in relation to the current date using relative terms such as Yesterday, Today, In 3 days, 2 months ago, etc. This field should be set to Read only.

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, algunas propiedades específicas están disponibles para los campos Fecha y hora que tienen configurado el widget Fecha y hora o Rango de fechas.

Rango de fechas (daterange)

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

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

Para agregar un rango de fechas:

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

    • tiene una fecha de inicio y finalización obligatorias, este campo puede ser tanto la fecha de inicio como la fecha de finalización; el resultado es el mismo.

    • permite una fecha de inicio o fin opcional; este campo es la fecha de inicio o la fecha de fin, respectivamente.

    Truco

    Para evitar mostrar la misma información dos veces, el campo subyacente de fecha de inicio/fin puede hacerse invisible activando Invisible o eliminarse de la vista haciendo clic en Eliminar de la vista.

  2. Añade un campo Fecha y hora y establece el campo Widget en Rango de fechas.

  3. Introduce una Etiqueta adecuada.

  4. Selecciona el campo subyacente de fecha de inicio/fin en el menú desplegable Campo de fecha de inicio o Campo de fecha de fin, según corresponda.

  5. Si el rango de fechas debe tener una fecha de inicio y fin obligatoria, activa Siempre rango.

  6. Actualiza cualquier otra propiedad general o propiedades específicas para campos de Fecha y Hora según sea necesario y luego haz clic en Cerrar en la esquina superior derecha de la pantalla.

Example

Ejemplos de los campos de fecha y hora con diferentes widgets

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, que pueden usarse para indicar un nivel de importancia o satisfacción, por ejemplo. Esto tiene el mismo efecto que seleccionar el campo Prioridad, aunque, para este último, ya están predefinidos cuatro valores de prioridad.

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

    Truco

    De forma predeterminada, los botones de opción se organizan verticalmente. Activa Mostrar horizontalmente para cambiar la forma en que se muestran.

  • Barra de estado: muestra todos los valores seleccionables al mismo tiempo como una barra de progreso en forma de flecha.

    Truco

    De forma predeterminada, los valores en la barra de estado son seleccionables. Desactiva Clicable para evitar que el valor se edite en la interfaz.

Example

Ejemplos de campos de selección con diferentes widgets

Prioridad (selection)

El campo Prioridad se usa para mostrar un sistema de calificación de tres estrellas, que puede utilizarse para indicar un nivel de importancia o satisfacción. Este tipo de campo es un campo de Selección con el widget Prioridad seleccionado por defecto y cuatro valores de prioridad predefinidos. En consecuencia, los widgets Insignia, Insignias, Radio y Selección tienen los mismos efectos 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 luego se muestra en la Vista de formulario. Esto tiene el mismo efecto que usar el campo Imagen.

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

  • Firma electrónica: los usuarios pueden firmar el formulario electrónicamente. Esto tiene el mismo efecto que seleccionar el campo Firma electrónica.

Example

Ejemplos de campos de archivo con diferentes widgets

Imagen (binary)

El campo Imagen se usa para subir una imagen y mostrarla en la Vista de formulario. Este tipo de campo es un campo Archivo con el widget Imagen seleccionado por defecto. En consecuencia, los widgets Archivo, Visor PDF y Firma electrónica tienen los mismos efectos 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 Firma electrónica se usa para firmar el formulario electrónicamente. Este tipo de campo es un campo Archivo con el widget Firma electrónica seleccionado por defecto. En consecuencia, los widgets Archivo, Imagen y Visor PDF tienen los mismos efectos que los descritos en Archivo.

Truco

Para dar a los usuarios la opción Auto al tener que dibujar su firma, selecciona uno de los campos Autocompletar con disponibles (Texto, Many2One y Campo relacionado solo en el modelo). La firma se genera automáticamente usando los datos del campo seleccionado.

Campos de relación

Nota

Non-default widgets, when available, are presented as bullet points or sub-headings.

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.

  • Para activar la búsqueda de un registro vinculado solo después de que se haya introducido un número mínimo de caracteres, introduce el número deseado en el campo Búsqueda anticipada. En situaciones donde el conjunto de datos es grande, esto puede mejorar tanto la relevancia de la búsqueda como el rendimiento.

  • 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 usar un campo One2Many, los dos modelos deben haber sido vinculados previamente usando un campo Many2One. Las relaciones One2Many no existen de forma independiente: 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 usa para vincular múltiples registros de otro modelo a múltiples registros del modelo actual. Los campos Many2Many pueden usar Deshabilitar creación, Deshabilitar apertura, Dominio, 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

Truco

Para activar la búsqueda del registro vinculado solo después de que se haya introducido un número mínimo de caracteres, introduce el número deseado en el campo Búsqueda anticipada. En situaciones donde el conjunto de datos es grande, esto puede mejorar tanto la relevancia de la búsqueda como el rendimiento.

  • 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 usa para mostrar varios valores de otro modelo que aparecen en formas redondeadas, también conocidas como etiquetas. Este tipo de campo es un campo Many2Many con el widget Etiquetas seleccionado por defecto. En consecuencia, los widgets Casillas de verificación y Many2Many tienen los mismos efectos 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

Add a field to a view

With Studio, it is possible to add:

Truco

Add a new field to a form or list view to save it to the model and make it available as an existing field in other views of the same model.

Add a new field

Truco

Activate developer mode before adding a new field to see, and be able to edit, the field’s technical name during configuration.

To add a new field, follow these steps:

  1. Navigate to the relevant form or list view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant form or list view.

  2. In the Add tab, drag the relevant field type from the New Fields section and drop it in the desired position. If the new field is a relational field, select the relevant reciprocal field, model, or related field in the pop-up.

  3. In the Properties tab, configure the field’s properties:

    • Enter the Label to be displayed as the field name on the UI; this is also used to generate the default technical name of the field.

    • Click anywhere outside the Label field to see the Technical Name updated with the default technical name.

      Nota

      • The Technical Name of a new field can be edited in Studio during the configuration process. At any other time, a field’s technical name can only be modified via the technical settings of the database.

      • The technical name of a new field added using Studio is by default prefixed by x_studio_.

    • Optionally, select a different Widget via the dropdown; the default widget for the field type is selected by default.

    • Optionally, configure any other field properties.

  4. Click Close in the top-right corner to close Studio.

Ver también

Adding a new AI field

Add an existing field

To add a field that exists on the model but that is not present on the current view, follow these steps:

  1. Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.

  2. In the Add tab, in the left panel, click Existing Fields to reveal a list of all the model’s fields that are not currently present in the view.

  3. Drag the relevant field and drop it in the desired position.

  4. In the Properties tab, configure the relevant properties for the field in the current view.

    Nota

    Various properties can be configured independently for different views, if needed, such as the Label, the Widget, the visibility of the field for certain user groups, as well as whether or not the field is Invisible, Required, or Readonly.

  5. Click Close in the top-right corner to close Studio.

Field properties

A series of general properties can be configured for most combinations of field type and widget. Additional properties are available depending on the specific field type and widget selected. For example, Date & Time fields using the Date & Time or Date Range widget have various specific properties that can be configured.

Propiedades generales

  • Class: Use Bootstrap or other custom classes defined in Odoo to customize how the field is styled and displayed on the UI.

  • Invisible: habilita esta propiedad cuando no es necesario que los usuarios vean un campo en la interfaz. Esto ayuda a ordenar la interfaz mostrando solo los campos esenciales según una situación específica.

  • Obligatorio: habilita esta propiedad si un campo debe ser completado siempre por el usuario antes de poder continuar.

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

Truco

  • The Invisible property also applies inside Studio. To view hidden fields in Studio, click on a view’s View tab and enable Show Invisible Elements.

  • The Invisible, Required, and Readonly properties can be enabled for specific records only by clicking on Conditional and creating a filter.

    Example

    On the form view of the Contact model, the Title field only appears when Individual is selected, as that field would not be helpful for a Company contact.

  • Label: This is the field name on the UI; the label is used to generate the technical name of the field.

  • Información sobre herramientas de ayuda: para explicar el propósito de un campo, añade una descripción. El texto se muestra dentro de un cuadro de información sobre herramientas al pasar el ratón sobre el signo de interrogación junto a la etiqueta del campo.

  • Technical Name: To view a field’s technical name in Studio (and, during the configuration of a new field, edit it if desired), activate developer mode.

    Truco

    If this field needs to be updated but is no longer editable via Studio, the technical name can be modified via the technical settings of the database.

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

  • Placeholder: To provide an example of how a field should be completed, add a fixed placeholder text. The text appears in light gray until a value is entered.

  • Dynamic Placeholder: To provide the value of the selected field as an example of how a field should be completed. The text appears in light gray until a value is entered.

  • Valor predeterminado: para mostrar un valor predeterminado en un campo cuando se crea un registro, añade un valor.

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

  • Prohibir visibilidad a grupos: para evitar que ciertos usuarios vean el campo, selecciona uno o más grupos de acceso de usuario.

Propiedades para campos de fecha y hora

For Date & Time fields using the Date & Time or Date Range widget, some specific properties are available:

  • Minimal precision: Determine the smallest date unit that must be selected in the date selector. The possible values are Day, Month, Year or Decade. If no value is selected, the user must select a day in the date selector.

  • Maximal precision: Determine the largest date unit that can be used to navigate the date selector. The possible values are Day, Month, Year or Decade. If no value is selected, the user can navigate the date selector by decade.

  • Advertencia para fechas futuras: habilita esta propiedad para mostrar un icono de advertencia si se selecciona una fecha futura.

  • Date format: Por defecto, la fecha se mostrará como Apr 2, 2025, 08:05 AM. Activa esta propiedad para mostrar la fecha en el formato 4/2/2025 08:05:00. El modo numérico es el formato establecido en el idioma actual. En este modo, los segundos siempre se muestran.

  • Show date: Esta propiedad está activada por defecto para los campos Date & Time. Desactiva esta propiedad para mostrar solo la hora.

  • Mostrar hora: esta propiedad está habilitada por defecto para los campos Fecha y hora. En un campo de solo lectura, deshabilita la propiedad para mostrar solo la fecha. Esto puede mantener una vista de lista menos desordenada, por ejemplo.

  • Show seconds: Esta propiedad está desactivada por defecto para los campos Date & Time. Activa la propiedad para mostrar los segundos.

  • Intervalo de tiempo: introduce un valor para determinar los intervalos de minutos mostrados en el selector de hora. Por ejemplo, introduce 15 para permitir intervalos de cuarto de hora. El valor predeterminado está configurado en 5 minutos.

  • Fecha más temprana aceptada: introduce la fecha más temprana que se puede seleccionar en el selector de fecha en formato ISO, es decir, YYYY-MM-DD. Si la fecha actual es siempre la fecha más temprana aceptada, introduce today. En el selector de fecha, las fechas anteriores a la fecha más temprana aceptada aparecen en gris.

  • Fecha más tardía aceptada: introduce la fecha más tardía que se puede seleccionar en el selector de fecha en formato ISO, es decir, YYYY-MM-DD. Si la fecha actual es siempre la fecha más tardía aceptada, introduce today. En el selector de fecha, las fechas posteriores a la fecha más tardía aceptada aparecen en gris.

Modify a field’s properties

To modify the properties of a field, follow these steps:

  1. Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.

  2. Click on the relevant field.

  3. In the Properties tab, make any desired changes to the field properties.

    Truco

    Various properties can be configured independently for different views, such as the Label, the Widget, the visibility of the field for certain user groups, as well as whether or not the field is Invisible, Required, or Readonly.

  4. Click Close in the top-right corner to close Studio.

Nota

The Technical Name of a field (visible in Studio with developer mode activated) cannot be modified in Studio; this can be done via the technical settings of the database.

Modify a field’s technical name

To modify the technical name of a field, activate developer mode, then follow these steps:

  1. With the field open in Studio, copy the technical name of the field.

  2. Remove the field from all views in Studio, then click Close to close Studio.

  3. Navigate to Settings app ‣ Technical ‣ Fields.

  4. Paste the copied technical name into the search bar, then open the relevant field.

  5. Modify the Field Name as needed.

Once the field’s technical name has been updated, the field can then be added (back) to the relevant view(s) from the list of existing fields.

Importante

When updating the technical name of a field, make sure to keep at least the x_ prefix, which is required for any custom field; for fields created using Studio, keep the x_studio_ prefix to allow such fields to be more easily identified.

Remove a field from a view

To remove a field from a view, follow these steps:

  1. Navigate to the relevant view, then click the (Toggle Studio) icon in the upper-right corner. Alternatively, with any app open, click the (Toggle Studio) icon, then navigate to the relevant view.

  2. Click on the relevant field.

  3. Scroll to the bottom of the Properties tab, then click Remove from view.

  4. Click Ok to confirm the action.

Truco

  • A removed field can be easily added back to the view at a later stage, if needed.

  • If the intention is to declutter the view, it is also possible to modify a field and make it Invisible on the view in question.