Pular para o conteúdo

O Modelo ir.model: Compreendendo o Registo de Modelos do Odoo

Um guia completo sobre o modelo de metadados que define cada modelo Odoo no sistema
11 de março de 2026 por
O Modelo ir.model: Compreendendo o Registo de Modelos do Odoo
Dasolo
| Nenhum comentário ainda

Introdução


No Odoo, os modelos definem como os dados são estruturados e armazenados na base de dados. Cada pedaço de dados empresariais com o qual você trabalha, desde pedidos de venda a faturas e contactos, vive num modelo.


Compreender os modelos do Odoo é essencial tanto para desenvolvedores quanto para consultores funcionais. Os modelos são a base da arquitetura de dados do Odoo. Eles definem os campos do Odoo, relacionamentos e lógica de negócios.


Mas onde é que o Odoo armazena informações sobre cada modelo no sistema? A resposta é ir.model. Este modelo no Odoo é o registro que contém metadados sobre todos os outros modelos. Quer você esteja construindo módulos personalizados, explorando a API ou depurando o Odoo, você encontrará o ir.model.

O que é o Modelo ir.model


O modelo ir.model é o registo de metadados para todos os modelos do Odoo. Ele armazena um registo por modelo no sistema. Quando você define um novo modelo em Python ou cria um através do Odoo Studio, o Odoo cria ou atualiza um registo ir.model.


Este modelo no Odoo é utilizado pelo módulo base. Ele faz parte do núcleo do framework. Cada modelo do Odoo, seja um modelo regular, um modelo abstrato do Odoo ou um modelo transitório do Odoo, tem uma entrada correspondente em ir.model.


O modelo é definido no módulo base. Ele está intimamente relacionado a ir.model.fields, que armazena metadados sobre cada campo do Odoo em cada modelo. Juntos, ir.model e ir.model.fields formam a espinha dorsal das capacidades de introspecção e reflexão do Odoo.


Os desenvolvedores usam ir.model quando precisam listar os modelos disponíveis, verificar a herança de modelos ou construir ferramentas dinâmicas que funcionem com qualquer modelo. O modelo API no Odoo expõe ir.model através de XML-RPC e JSON-RPC.

Campos Chave no Modelo


Aqui estão os campos mais importantes no modelo ir.model do Odoo. Compreender estes ajudará você a trabalhar de forma eficaz com o registo de modelos.


1. nome

Tipo: Char. Este campo armazena a descrição legível por humanos do modelo. É traduzível e exibido nas Configurações Técnicas e nas ferramentas de desenvolvedor. É o rótulo que você vê ao navegar pelos modelos.


2. modelo

Tipo: Char. O nome técnico do modelo. Esta é a string que você usa no código Python, como res.partner ou sale.order. É obrigatório e indexado para buscas rápidas.


3. info

Tipo: Texto. Informações adicionais ou notas sobre o modelo. Usado para documentação e uso interno. Pode estar vazio para a maioria dos modelos.


4. estado

Tipo: Seleção. Indica se o modelo é base (dos módulos Odoo) ou manual (criado via Odoo Studio ou código personalizado). Modelos base são protegidos. Modelos manuais podem ser modificados com mais liberdade.


5. transitório

Tipo: Booleano. Quando Verdadeiro, este modelo é um modelo transitório do Odoo. Modelos transitórios são temporários. Seus registros são automaticamente limpos. Usado para assistentes e dados temporários.


6. field_id

Tipo: Um para muitos (ir.model.fields). A lista de campos Odoo definidos neste modelo. Cada registro ir.model.fields descreve um campo: seu nome, tipo e outros atributos.


7. access_ids

Tipo: Um para muitos (ir.model.access). Direitos de acesso para este modelo. Cada registro define quais grupos podem criar, ler, atualizar ou excluir registros. Usado para segurança.


8. rule_ids

Tipo: Um para muitos (ir.rule). Regras de registro para este modelo. Regras de registro restringem quais registros os usuários podem ver. Usado para segurança a nível de linha.


9. inherited_model_ids

Tipo: Muitos para muitos (ir.model). Os modelos pai ao usar herança de modelo Odoo. Quando você herda um modelo no Odoo, o modelo filho se liga ao seu pai aqui. Isso é a herança de modelo Odoo em ação.


10. módulos

Tipo: Char. Um campo calculado que lista os módulos onde este modelo está definido. Para modelos estendidos por múltiplos módulos, isto mostra todos eles. Útil para entender dependências.


11. ordenar

Tipo: Inteiro. Ordem de exibição para o modelo no menu de Configurações Técnicas. Valores mais baixos aparecem primeiro. Usado para organizar a lista de modelos.


12. restrições

Tipo: Texto. Definições de restrições em Python. Armazena o código para decoradores @api.constrains. Usado quando o modelo tem lógica de validação personalizada.


13. pós-restrições

Tipo: Texto. Definições de pós-restrições em Python. Semelhante a restrições, mas para pós-validação. Usado para cenários de validação avançada.


14. sql_restrições

Tipo: Texto. Definições de restrições SQL. Restrições a nível de banco de dados, como índices únicos. Garante a integridade dos dados a nível de banco de dados.


15. view_ids

Tipo: One2many (ir.ui.view). Campo calculado que lista as vistas associadas a este modelo. Usado para introspecção e gestão de vistas.


16. contagem_de_registros

Tipo: Inteiro. Campo calculado que mostra o número de registos neste modelo. Útil para relatórios e para entender quanta informação um modelo contém.


17. nome_exibição

Tipo: Char. Campo calculado para a representação de exibição. Usado quando o registo é mostrado em listas e relações. Normalmente combina nome e modelo.


18. data_criação

Tipo: Datetime. Armazena a data e hora em que o registo foi criado. Gerido automaticamente pelo Odoo.


19. id_criador

Tipo: Many2one (res.users). O utilizador que criou o registo. Usado para auditoria e rastreamento.


20. data_modificação

Tipo: Datetime. Armazena a data e hora da última modificação. Também gerido automaticamente.


21. id_modificador

Tipo: Many2one (res.users). O utilizador que modificou o registo pela última vez. Usado para auditoria.


22. ativo

Tipo: Booleano. Sinal de exclusão suave. Quando Falso, o registro é arquivado. Usado para modelos obsoletos.


23. id

Tipo: Inteiro. O ID do banco de dados. Identificador único para cada registro ir.model. Usado ao referenciar o modelo em chamadas de API.


24. restrict_functionality

Tipo: Booleano. Quando Verdadeiro, este modelo tem funcionalidade restrita em certas edições do Odoo. Usado para diferenciação entre enterprise e community.


25. is_mail_thread

Tipo: Booleano. Indica se o modelo é um thread de e-mail. Modelos de thread de e-mail têm chatter, mensagens e seguidores. Usado para modelos que suportam discussões.


26. is_mail_activity

Tipo: Booleano. Indica se o modelo suporta atividades. Modelos de atividade têm o planejador de atividades e rastreamento da próxima ação.

Como Este Modelo É Usado em Fluxos de Trabalho Empresariais


1. Configurações e Configuração Técnica

Os administradores usam o menu de Configurações Técnicas para navegar pelos modelos. Os registros ir.model definem o que aparece nessa lista. Cada modelo mostra seu nome, descrição e contagem de campos.


2. Gestão de Direitos de Acesso

Ao configurar a segurança, os administradores atribuem direitos de acesso a grupos. Os access_ids no ir.model definem quais grupos podem criar, ler, atualizar ou eliminar registos para cada modelo.


3. Personalização do Odoo Studio

Quando os utilizadores criam modelos personalizados no Odoo Studio, o Odoo cria novos registos ir.model com estado manual. A relação field_id é preenchida com os campos personalizados do Odoo.


4. Descoberta de API e Integração

Sistemas externos integram-se com o Odoo através da API XML-RPC ou JSON-RPC. Eles podem consultar o ir.model para descobrir modelos disponíveis e a sua estrutura. O modelo API no Odoo expõe isso para introspecção.


5. Desenvolvimento e Depuração de Módulos

Os desenvolvedores usam o ir.model ao construir módulos. Eles verificam inherited_model_ids para entender a herança de modelos do Odoo. Eles inspecionam field_id para ver todos os campos do Odoo em um modelo.

Como os Desenvolvedores Estendem Este Modelo


Os desenvolvedores raramente estendem o ir.model diretamente. Em vez disso, eles trabalham com ele quando definem novos modelos. O registo de modelos é atualizado automaticamente quando você carrega um módulo.


Herança de Modelos

Quando você usa _inherit = 'res.partner' no seu Python, o Odoo atualiza o registo ir.model para res.partner. Os inherited_model_ids no registo ir.model do seu novo modelo irão ligar-se ao pai. Esta é a herança de modelos do Odoo em ação. O modelo herdado no Odoo mantém o registo sincronizado.


Adicionando Campos

Quando você adiciona novos campos do Odoo a um modelo, o Odoo cria registos ir.model.fields. Estes ligam-se ao ir.model através do campo model_id. O registo ir.model em si não é modificado.


Extensões Python

Você normalmente não substitui os métodos ir.model. O modelo faz parte do núcleo do framework. Se você precisar personalizar o comportamento, você estende os modelos que ir.model descreve, e não o ir.model em si.


Odoo Studio

O Odoo Studio cria registros ir.model e ir.model.fields quando você constrói modelos personalizados. Nenhum código é necessário. A flag transient distingue o modelo transitório do Odoo dos modelos regulares. Modelos abstratos (modelo abstrato do Odoo) não criam registros ir.model porque não têm tabela de banco de dados.

Melhores Práticas


  • Use ir.model para introspecção e descoberta. Ao construir integrações, consulte ir.model para listar os modelos disponíveis em vez de codificar diretamente.
  • Use o campo model para buscas. Ele é indexado. Pesquise pelo nome do modelo quando precisar dos metadados de um modelo específico.
  • Verifique inherited_model_ids ao construir módulos personalizados. Entenda a cadeia de herança antes de estender.
  • Use o modelo API no Odoo (XML-RPC ou JSON-RPC) para ler ir.model. Evite modificá-lo, a menos que você esteja construindo uma ferramenta semelhante ao Studio.
  • Use ir.model.fields para introspecção em nível de campo. A relação field_id fornece todos os campos do Odoo em um modelo.

Erros Comuns


  • Modificando registros ir.model diretamente. O registro é gerenciado pelo Odoo. Mudanças podem quebrar o sistema ou serem sobrescritas na atualização.
  • Confundindo ir.model com a classe de modelo Python. ir.model é o registro do banco de dados. A classe Python é o modelo real. Eles estão relacionados, mas são diferentes.
  • Assumindo que todos os modelos têm registros ir.model. Classes de modelos abstratos do Odoo não criam tabelas de banco de dados ou registros ir.model.
  • Esquecendo que modelos transitórios são temporários. A flag transitória significa que os dados do modelo transitório do Odoo são limpos. Não a utilize para dados permanentes.
  • Consultando ir.model sem filtragem. Uma instância típica do Odoo tem centenas de modelos. Sempre filtre pelo nome do modelo ou use domínios de pesquisa.

Conclusão


O modelo ir.model é o registro de todos os modelos do Odoo. Ele armazena metadados sobre cada modelo no sistema. Compreender seus campos e como se relaciona com ir.model.fields ajudará você a navegar pela arquitetura de dados do Odoo.


Seja você um consultor funcional explorando Configurações Técnicas ou um desenvolvedor construindo integrações de API, um sólido entendimento de ir.model economizará tempo e evitará erros.

Precisa de Ajuda com a Sua Implementação do Odoo?


A Dasolo ajuda empresas a implementar, personalizar e otimizar o Odoo. Nós nos especializamos em integrações de API e desenvolvimento Odoo. Nossa equipe tem profunda experiência com a arquitetura de dados do Odoo e modelos como ir.model.


Se você precisar de ajuda com sua implementação do Odoo, módulos personalizados ou integrações, estamos aqui para ajudar. Agende uma demonstração para discutir seu projeto.

O Modelo ir.model: Compreendendo o Registo de Modelos do Odoo
Dasolo 11 de março de 2026
Compartilhar esta publicação
Iniciar sessão para deixar um comentário