Pular para o conteúdo
Odoo Menu
  • Entrar
  • Experimente grátis
  • Aplicativos
    Finanças
    • Financeiro
    • Faturamento
    • Despesas
    • Planilhas (BI)
    • Documentos
    • Assinar Documentos
    Vendas
    • CRM
    • Vendas
    • PDV Loja
    • PDV Restaurantes
    • Assinaturas
    • Locação
    Websites
    • Criador de Sites
    • e-Commerce
    • Blog
    • Fórum
    • Chat ao Vivo
    • e-Learning
    Cadeia de mantimentos
    • Inventário
    • Fabricação
    • PLM - Ciclo de Vida do Produto
    • Compras
    • Manutenção
    • Qualidade
    Recursos Humanos
    • Funcionários
    • Recrutamento
    • Folgas
    • Avaliações
    • Indicações
    • Frota
    Marketing
    • Redes Sociais
    • Marketing por E-mail
    • Marketing por SMS
    • Eventos
    • Automação de Marketing
    • Pesquisas
    Serviços
    • Projeto
    • Planilhas de Horas
    • Serviço de Campo
    • Central de Ajuda
    • Planejamento
    • Compromissos
    Produtividade
    • Mensagens
    • Aprovações
    • Internet das Coisas
    • VoIP
    • Conhecimento
    • WhatsApp
    Aplicativos de terceiros Odoo Studio Plataforma Odoo Cloud
  • Setores
    Varejo
    • Loja de livros
    • Loja de roupas
    • Loja de móveis
    • Mercearia
    • Loja de ferramentas
    • Loja de brinquedos
    Comida e hospitalidade
    • Bar e Pub
    • Restaurante
    • Fast Food
    • Hospedagem
    • Distribuidor de bebidas
    • Hotel
    Imóveis
    • Imobiliária
    • Escritório de arquitetura
    • Construção
    • Administração de propriedades
    • Jardinagem
    • Associação de proprietários de imóveis
    Consultoria
    • Escritório de Contabilidade
    • Parceiro Odoo
    • Agência de marketing
    • Escritório de advocacia
    • Aquisição de talentos
    • Auditoria e Certificação
    Fabricação
    • Têxtil
    • Metal
    • Móveis
    • Alimentação
    • Cervejaria
    • Presentes corporativos
    Saúde e Boa forma
    • Clube esportivo
    • Loja de óculos
    • Academia
    • Profissionais de bem-estar
    • Farmácia
    • Salão de cabeleireiro
    Comércio
    • Handyman
    • Hardware e Suporte de TI
    • Sistemas de energia solar
    • Sapataria
    • Serviços de limpeza
    • Serviços de climatização
    Outros
    • Organização sem fins lucrativos
    • Agência Ambiental
    • Aluguel de outdoors
    • Fotografia
    • Aluguel de bicicletas
    • Revendedor de software
    Navegar por todos os setores
  • Comunidade
    Aprenda
    • Tutoriais
    • Documentação
    • Certificações
    • Treinamento
    • Blog
    • Podcast
    Empodere a Educação
    • Programa de educação
    • Scale Up! Jogo de Negócios
    • Visite a Odoo
    Obtenha o Software
    • Baixar
    • Comparar edições
    • Releases
    Colaborar
    • Github
    • Fórum
    • Eventos
    • Traduções
    • Torne-se um parceiro
    • Serviços para parceiros
    • Cadastre seu escritório contábil
    Obtenha os serviços
    • Encontre um parceiro
    • Encontre um Contador
    • Conheça um consultor
    • Serviços de Implementação
    • Referências de Clientes
    • Suporte
    • Upgrades
    Github YouTube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Faça uma demonstração
  • Preços
  • Ajuda

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Financeiro
  • Inventário
  • PoS
  • Projeto
  • MRP
All apps
É necessário estar registrado para interagir com a comunidade.
Todas as publicações Pessoas Emblemas
Marcadores (Ver tudo)
odoo accounting v14 pos v15
Sobre este fórum
É necessário estar registrado para interagir com a comunidade.
Todas as publicações Pessoas Emblemas
Marcadores (Ver tudo)
odoo accounting v14 pos v15
Sobre este fórum
Ajuda

where does odoo store the selection field string?

Inscrever

Seja notificado quando houver atividade nesta publicação

Esta pergunta foi sinalizada
3 Respostas
11940 Visualizações
Avatar
willie ho

i need to get the relation of odoo selection field value and string.

which table is storing the data?

0
Avatar
Cancelar
Avatar
Axel Mendoza
Melhor resposta

Normally It does not store the values in the database. They are defined in python and you could access to those values in the model like:

self.env['model_name']._fields[field_name].selection
1
Avatar
Cancelar
Avatar
Amit Muchhala
Melhor resposta

In selection field, Odoo does not store the label of selection field.

selection_field = fields.Selection([("option_1", "Label_1"), ("option_2", "Label_2")])

Odoo stores "option_1" or "option_2"  in database. Now if the label has t be fetched, we can write something like,

current_state = dict(self._fields["state"].selection).get(self.state)

where, "state" is the name of field defined in the model which can be anything. And if you print self._fields, you will get a frozen dict which contains the key and value filled in the record set.

I hope it will help you.

0
Avatar
Cancelar
Avatar
Marvin Taboada
Melhor resposta

Hello willie ho,

The value was supposed to be stored in the 'selection' field of the 'ir_model_fields' table (by using the create and write methods of 'ir.model.fields'), but records in that table are actually inserted by direct SQL statements during module installation and the 'selection' column is omitted there, see here: https://github.com/odoo/odoo/blob/8.0/openerp/models.py#L357

You can run the following SQL queries to verify that the selection column is not populated:

-- 'ir.model.fields' has some selection fields, not stored in the DB 
SELECT id, model, ttype, name, field_description, selection
FROM ir_model_fields
WHERE model like 'ir.model.fields'
ORDER BY name;
-- selection is either NULL or empty for all fields in the DB
SELECT id, model, ttype, name, field_description, selection, domain
FROM ir_model_fields
WHERE selection IS NOT NULL
AND selection NOT LIKE ''
ORDER BY name;

Anyway, you can directly get the 'selection', and also some other field attributes, by directly introspecting the field object, please see the following example

model_name = 'ir.model.fields' 
selection_field = 'on_delete'
model_obj = self.pool[model_name]
field_selection = model_obj._columns[selection_field].selection

In the above example I'm obtaining the 'selection' value for the following field: https://github.com/odoo/odoo/blob/8.0/openerp/addons/base/ir/ir_model.py#L267

Not storing the 'selection' values in the database is related to the fact that you can either assign a list, a method reference or even a method name (new since Odoo 8.0) for selection field values. At runtime, the value is appropriately evaluated depending on its type: https://github.com/odoo/odoo/blob/8.0/openerp/fields.py#L1363

See this link for a reference: https://www.odoo.com/documentation/8.0/reference/orm.html#openerp.fields.Selection

Regards.

0
Avatar
Cancelar
Está gostando da discussão? Não fique apenas lendo, participe!

Crie uma conta hoje mesmo para aproveitar os recursos exclusivos e interagir com nossa incrível comunidade!

Inscreva-se
Comunidade
  • Tutoriais
  • Documentação
  • Fórum
Open Source
  • Baixar
  • Github
  • Runbot
  • Traduções
Serviços
  • Odoo.sh Hosting
  • Suporte
  • Upgrade
  • Desenvolvimentos personalizados
  • Educação
  • Encontre um Contador
  • Encontre um parceiro
  • Torne-se um parceiro
Sobre nós
  • Nossa empresa
  • Ativos da marca
  • Contato
  • Empregos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidade
  • Segurança
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo é um conjunto de aplicativos de negócios em código aberto que cobre todas as necessidades de sua empresa: CRM, comércio eletrônico, contabilidade, estoque, ponto de venda, gerenciamento de projetos, etc.

A proposta de valor exclusiva Odoo é ser, ao mesmo tempo, muito fácil de usar e totalmente integrado.

Site feito com

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now