Campos e widgets

Os campos estruturam os modelos de uma base de dados. Se você imaginar um modelo como uma tabela ou planilha, os campos são as colunas onde os dados são armazenados nos registros (ou seja, as linhas). Os campos também definem o tipo de dados que são armazenados neles. A forma como os dados são apresentados e formatados na :abbr:`IU (Interface do Usuário) ` é definida pelo widget.

Do ponto de vista técnico, há 15 tipos de campo no Odoo. No entanto, você pode escolher entre 20 campos no Estúdio, pois alguns tipos de campo estão disponíveis mais de uma vez com um widget padrão diferente.

Dica

Novos campos só podem ser adicionados às visualizações Formulário e Lista. Em outras visualizações, você só pode adicionar Campos existentes (campos já existentes no modelo).

Campos simples

Os campos simples contêm valores básicos, como texto, números, arquivos, etc.

Nota

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

Texto (char)

O campo Texto é usado para texto curto contendo qualquer caractere. Uma linha de texto é exibida ao preencher o campo.

  • Medalha: exibe o valor dentro de uma forma arredondada, semelhante a um marcador. O valor não pode ser editado na interface do usuário, mas um valor padrão pode ser definido.

  • Copiar para a prancheta: os usuários podem copiar o valor clicando em um botão.

  • E-mail: o valor se torna um link enviar para clicável.

  • Imagem: exibe uma imagem usando um URL. O valor não pode ser editado manualmente, mas um valor padrão pode ser definido.

    Nota

    This works differently than 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.

  • Telefone: o valor se torna um link tel clicável.

    Dica

    Marque Habilitar SMS para adicionar ao lado do campo uma opção para enviar um SMS diretamente do Odoo.

  • URL: o valor se torna um URL clicável.

Example

Exemplos de campos de texto com diferentes widgets

Texto multilinha (text)

O campo Texto multilinha é usado para textos mais longos que contenham qualquer tipo de caractere. Duas linhas de texto são exibidas na interface do usuário quando o campo é preenchido.

  • Copiar para a prancheta: os usuários podem copiar o valor clicando em um botão.

Example

Exemplos de campos de texto multilinha com diferentes widgets

Número inteiro (integer)

O campo Número inteiro é usado para todos os números inteiros (positivos, negativos ou zero, sem decimal).

  • Gráfico de porcentagem: exibe o valor dentro de um círculo de porcentagem, geralmente para um valor calculado. O valor não pode ser editado na interface do usuário, mas um valor padrão pode ser definido.

  • Barra de progresso: exibe o valor ao lado de uma barra de porcentagem, geralmente para um valor computado. O campo não pode ser editado manualmente, mas um valor padrão pode ser definido.

  • Alça: exibe um ícone de alça de arrastar para ordenar os registros manualmente na List view.

Example

Exemplos de campos de número inteiro com diferentes widgets

Decimal (float)

O campo Decimal é usado para todos os números decimais (positivo, negativo ou zero, com decimal).

Nota

Os números decimais são exibidos com duas casas decimais após o ponto na interface do usuário, mas são armazenados na base de dados com mais precisão.

  • Monetary: it is similar to using the Monetary field. It is recommended to use the latter as it offers more functionalities.

  • Porcentagem: exibe um caractere de porcentagem % após o valor.

  • Gráfico de porcentagem: exibe o valor dentro de um círculo de porcentagem, geralmente para um valor calculado. O campo não pode ser editado manualmente, mas um valor padrão pode ser definido.

  • Barra de progresso: exibe o valor ao lado de uma barra de porcentagem, geralmente para um valor computado. O campo não pode ser editado manualmente, mas um valor padrão pode ser definido.

  • Tempo: o valor deve seguir o formato hh:mm, com um máximo de 59 minutos.

Example

Exemplos de campos decimais com diferentes widgets

Monetário (monetário)

O campo Monetário é usado para todos os valores monetários.

Nota

Quando você adiciona um campo Monetário pela primeira vez, é solicitado que você adicione um campo Moeda se ainda não existir nenhum no modelo. O Odoo oferece adicionar o campo Moeda. Depois que ele for adicionado, adicione o campo Monetário novamente.

Example

Exemplo de um campo Monetário com o campo Moeda

Html (html)

O campo Html é usado para adicionar texto que pode ser editado usando o editor HTML do Odoo.

  • Texto multilinha: desativa o editor HTML do Odoo para permitir a edição de HTML bruto.

Example

Exemplos de campos Html com diferentes widgets

Data (date)’

O campo Data é usado para selecionar uma data em um calendário.

  • Remaining Days: the remaining number of days before the selected date is displayed (e.g., In 5 days), based on the current date. This field should be set to Read only.

Example

Exemplos de campos Data com diferentes widgets

Data e Hora (datetime)

O campo Data e Hora é usado para selecionar uma data em um calendário e uma hora em um relógio. A hora atual do usuário é usada automaticamente se nenhuma hora for definida.

Dica

As well as general properties, some specific properties are available for Date & Time fields that have the Date & Time or Date Range widget set.

Date Range (daterange)

The Date Range widget is used to display a period of time defined by a start date and an end date in a single line. A date range can have a mandatory start and end date, e.g., for a multi-day event, or allow an optional start or end date, e.g., for a field service intervention or a project task.

Adding a date range requires two fields: a Date & Time field with the Date Range widget set and another field that is selected as the start date or end date. This underlying field can be an existing Date or Date & Time field, or one created specifically for this purpose.

To add a date range:

  1. Identify an existing Date or Date & Time field that can be used as the underlying start/end date field, or add a new one. If the date range:

    • has a mandatory start date and end date, this field can be either the start date or end date; the outcome is the same.

    • allows an optional start or end date, this field is the start date or end date, respectively.

    Dica

    To avoid displaying the same information twice, the underlying start/end date field can be made invisible by enabling Invisible or removed from the view by clicking Remove from view.

  2. Add a Date & Time field and set the Widget field to Date Range.

  3. Enter an appropriate Label.

  4. Select the underlying start/end date field from the Start date field or End date field dropdown, as relevant.

  5. If the date range should have a mandatory start and end date, enable Always range.

  6. Update any other general properties or specific properties for Date & Time fields as needed, then click Close in the upper right corner of the screen.

Example

Exemplos de campos Data e Hora com diferentes widgets

Remaining Days (remaining_days)

The Remaining Days widget displays the remaining number of days before the selected date (e.g., In 5 days), based on the current date and time. This field should be set to Read only.

Caixa de seleção (boolean)

O campo Caixa de seleção é usado quando um valor deve ser apenas verdadeiro ou falso, indicado pela marcação ou desmarcação de uma caixa de seleção.

  • Botão: exibe um botão de rádio. O widget funciona sem alternar para o modo de edição.

  • Alternância: exibe um botão de alternância. O widget funciona sem alternar para o modo de edição.

Example

Exemplos de campos de caixa de seleção com diferentes widgets

Seleção (selection)

O campo Seleção é usado quando os usuários devem selecionar um único valor em um grupo de valores predefinidos.

  • Medalha: exibe o valor dentro de uma forma arredondada, semelhante a um marcador. O valor não pode ser editado na interface do usuário, mas um valor padrão pode ser definido.

  • Medalhas: exibe todos os valores selecionáveis simultaneamente dentro de formas retangulares, organizadas na horizontal.

  • Priority: displays star symbols instead of values, which can be used to indicate an importance or satisfaction level, for example. This has the same effect as selecting the Priority field, although, for the latter, four priority values are already predefined.

  • Rádio: exibe todos os valores selecionáveis ao mesmo tempo como botões de rádio.

    Dica

    By default, radio buttons are organized vertically. Enable Display horizontally to switch the way they are displayed.

  • Status Bar: displays all selectable values at the same time as an arrow progress bar.

    Dica

    By default, values on the status bar are selectable. Disable Clickable to prevent the value being edited on the UI.

Example

Exemplos de campos de seleção com diferentes widgets

Prioridade (selection)

The Priority field is used to display a three-star rating system, which can be used to indicate importance or satisfaction level. This field type is a Selection field with the Priority widget selected by default and four priority values predefined. Consequently, the Badge, Badges, Radio, and Selection widgets have the same effects as described under Selection.

Dica

Para alterar o número de estrelas disponíveis adicionando ou removendo valores, clique em Editar valores. Observe que o primeiro valor é igual a 0 estrelas (ou seja, quando nenhuma seleção é feita), portanto, ter quatro valores resulta em um sistema de classificação de três estrelas, por exemplo.

Example

Exemplo de um campo Prioridade

Arquivo (binary)

O campo Arquivo é usado para carregar qualquer tipo de arquivo ou assinar um formulário (widget:guilabel:Assinar).

  • Image: users can upload an image file, which is then displayed in Form view. This has the same effect as using the Image field.

  • Visualizador de PDF: os usuários podem carregar um arquivo PDF, que pode ser navegado a partir da Visualização de formulário.

  • Sign: users can electronically sign the form. This has the same effect as selecting the Sign field.

Example

Exemplos de campos de arquivo com diferentes widgets

Imagem (binary)

The Image field is used to upload an image and display it in Form view. This field type is a File field with the Image widget selected by default. Consequently, the File, PDF Viewer, and Sign widgets have the same effects as described under File.

Dica

Para alterar o tamanho de exibição das imagens carregadas, selecione Pequeno, Médio ou Grande na opção Tamanho.

Assinar (binary)

The Sign field is used to sign the form electronically. This field type is a File field with the Sign widget selected by default. Consequently, the File, Image, and PDF Viewer widgets have the same effects as described under File.

Dica

To give users the Auto option when having to draw their signature, select one of the available Auto-complete with fields (Text, Many2One, and Related Field on the model only). The signature is automatically generated using the data from the selected field.

Campos relacionais

Os campos relacionais são usados para vincular e exibir os dados de registros em outro modelo.

Nota

Os widgets não padrão, quando disponíveis, são apresentados como tópicos abaixo.

Many2One (many2one)

Campos Many2One é usado para vincular outro registro (de outro modelo) ao registro que está sendo editado. O nome do registro do outro modelo é então exibido no registro que está sendo editado.

Example

No modelo Pedido de venda, o campo Cliente é um campo Many2One que aponta para o modelo Contato. Isso permite que muitos pedidos de vendas sejam vinculados a um contato (cliente).

Diagrama que mostra uma relação de many2one

Dica

  • Para impedir que os usuários criem um novo registro no modelo vinculado, marque a opção Desabilitar criação.

  • Para evitar que os usuários abram registros em uma janela pop-up, marque a opção Desabilitar abertura.

  • Para ajudar os usuários a selecionar apenas o registro correto, clique em Domínio para criar um filtro.

  • Distintivo: exibe o valor dentro de uma forma arredondada, semelhante a um marcador. O valor não pode ser editado na interface do usuário.

  • Rádio: exibe todos os valores selecionáveis ao mesmo tempo como botões de rádio.

One2Many (one2many)

O campo One2Many é usado para exibir as relações existentes entre um registro no modelo atual e vários registros de outro modelo.

Example

Você poderia adicionar um campo One2Many no modelo Contato para examinar os muitos pedidos de vendas de um cliente.

Diagrama que mostra um relacionamento one2many

Nota

To use a One2Many field, the two models must have been linked already using a Many2One field. One2Many relations do not exist independently: a reverse-search of existing Many2One relations is performed.

Linhas (one2many)

O campo Linhas é usado para criar uma tabela com linhas e colunas (por exemplo, as linhas de produtos em um pedido de vendas).

Dica

Para modificar as colunas, clique no campo Linhas e, em seguida, em Editar visualização de lista. Para editar o formulário que aparece quando o usuário clica em Adicionar uma linha, clique em Editar visualização de formulário.

Example

Exemplo de um campo de Linhas

Many2Many (many2many)

The Many2Many field is used to link multiple records from another model to multiple records on the current model. Many2Many fields can use Disable creation, Disable opening, Domain, just like Many2One fields.

Example

No modelo Tarefa, o campo Responsáveis é um campo Many2Many que aponta para o modelo Contato. Isso permite que um único usuário seja atribuído a muitas tarefas e que muitos usuários sejam atribuídos a uma única tarefa.

Diagrama mostrando as relações many2many
  • Caixas de seleção: os usuários podem selecionar vários valores usando caixas de seleção.

  • Tags: users can select several values appearing in rounded shapes, also known as tags. This has the same effect as selecting the Tags field.

Marcadores (many2many)

The Tags field is used to display several values from another model appearing in rounded shapes, also known as tags. This field type is a Many2Many field with the Tags widget selected by default. Consequently, the Checkboxes and Many2Many widgets have the same effects as described under Many2Many.

Dica

Para exibir tags com cores de fundo diferentes, marque a opção Usar cores.

Example

Exemplo de um campo Marcadores

Propriedades

General properties

  • Invisible: Enable this property when it is not necessary for users to view a field on the UI. This helps declutter the UI by only showing the essential fields depending on a specific situation.

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

  • Required: Enable this property if a field should always be completed by the user before being able to proceed.

  • Readonly: Enable this property if users should not be able to modify a field.

Nota

You can choose to enable Invisible, Required and Readonly for specific records only by clicking on Conditional and creating a filter.

Example

Na visualização de Formulário do modelo Contato, o campo Título só aparece quando Particular for selecionado, pois esse campo não seria útil para um contato Empresa.

  • Label: the field’s name on the UI. This is not the name used in the PostgreSQL database. To view and change the latter, activate the developer mode and edit the Technical Name.

  • Help Tooltip: To explain the purpose of a field, add a description. The text is displayed inside a tooltip box when hovering with your mouse over the question mark beside the field’s label.

  • Widget: Para alterar a aparência ou a funcionalidade padrão de um campo, selecione um dos widgets disponíveis.

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

  • Default value: To display a default value in a field when a record is created, add a value.

  • Allow visibility to groups: To limit which users can view the field, select one or more user access groups.

  • Forbid visibility to groups: To prevent certain users from seeing the field, select one or more user access groups.

Properties for Date & Time fields

For Date & Time fields that have the Date & Time or Date Range widget set, 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.

  • Warning for future dates: Enable this property to display a warning icon if a future date is selected.

  • Condensed display: Enable this property to show days, months and hours with no leading zeros, e.g., 4/2/2025 8:05:00 instead of 04/02/2025 08:05:00.

  • Show time: This property is enabled by default for Date & Time fields. On a read-only field, disable the property to show only the date. This can keep a list view less cluttered, for example.

  • Show seconds: This property is enabled by default for Date & Time fields. Disable the property to show only hours and minutes.

  • Time interval: Enter a value to determine the minute intervals shown in the time selector. For example, enter 15 to allow quarter-hour intervals. The default value is set to 5 minutes.

  • Earliest accepted date: Enter the earliest date that can be selected in the date selector in ISO-format, i.e., YYYY-MM-DD. If the current date is always the earliest accepted date, enter today. On the date selector, dates prior to the earliest accepted date are grayed out.

  • Latest accepted date: Enter the latest date that can be selected in the date selector in ISO-format, i.e., YYYY-MM-DD. If the current date is always the latest accepted date, enter today. On the date selector, dates later than the latest accepted date are grayed out.