Passa al contenuto

Campo Boolean in Odoo: Guida Completa per Sviluppatori e Amministratori

Guida essenziale al campo Boolean nel modello dati di Odoo: come funziona il checkbox, quali implicazioni ha nelle viste e nei flussi, e come personalizzarlo tecnicamente per adattarlo ai tuoi processi aziendali
6 marzo 2026 di
Campo Boolean in Odoo: Guida Completa per Sviluppatori e Amministratori
Dasolo
| Ancora nessun commento

Introduzione


Il campo Booleano è una delle tipologie più intuitive e diffuse in Odoo. Ogni volta che spunti una casella su un ordine di vendita, attivi o disattivi un cliente o selezioni un prodotto come preferito, stai usando proprio questo tipo di campo.


Semplice non significa banale: il Booleano ha comportamenti precisi che è utile conoscere. Sapere quando adottarlo, come impostarlo e quali limiti ha evita scelte progettuali che complicano il sistema nel tempo.


Questo articolo esplora il Booleano in profondità: cosa memorizza, come si presenta nell’interfaccia e nel modello dati, come crearlo via Studio o codice, esempi pratici di applicazione e suggerimenti operativi per sfruttarlo correttamente.

Cos’è il campo Booleano in Odoo


Nel cuore dell’ORM di Odoo il Booleano rappresenta una dicotomia netta: True o False. A livello di database si mappa su una colonna di tipo BOOLEAN in PostgreSQL: non c’è mezzo termine, lo stato è acceso o spento.


All’utente appare normalmente come una checkbox nei form. Nelle liste viene spesso mostrato con una spunta quando è True e lasciato vuoto quando è False; in alcuni casi, a seconda del widget scelto, può invece presentarsi come un interruttore a levetta.


Ecco l’idea di base di come si dichiara un campo Booleano in un modulo Python:

(Esempio di definizione Python in cui si aggiunge un campo booleano a un modello sale.order con etichetta e valore di default.)

Il parametro che definisce l’etichetta controlla cosa vede l’utente; il default stabilisce lo stato iniziale alla creazione del record. Anche se Odoo considera False quando non è presente un default, dichiararlo esplicitamente chiarisce l’intento del progettista.

Con Odoo Studio lo stesso tipo di campo è etichettato come Checkbox. I campi creati tramite Studio ottengono automaticamente un prefisso x_studio_, mentre chi sviluppa in Python sceglie il nome tecnico del campo.

Come funziona il campo


Quando aggiungi un Booleano a un modello, Odoo gestisce la creazione della colonna in PostgreSQL automaticamente durante l’installazione o l’aggiornamento del modulo: non serve intervento SQL manuale.


Un comportamento importante: Odoo non restituisce mai NULL per un Booleano. L’ORM ritorna sempre True o False; anche se la colonna non ha valore, la lettura restituisce False. Questo lo distingue da altri tipi di campo che possono essere None o vuoti.


Attributi chiave del campo

Queste sono le principali proprietà configurabili su un campo Booleano in Odoo:

  • default: imposta lo stato iniziale quando si crea un nuovo record. Di solito False, ma può essere True per scenari opt-out.
  • compute: collega un metodo Python che calcola il valore dinamicamente, utile per flag derivati dallo stato di altri campi.
  • store: se usato con compute, decide se memorizzare il valore in database. Con store=True i Booleani calcolati diventano ricercabili e utilizzabili nei report.
  • readonly: impedisce la modifica manuale nell’interfaccia, spesso usato per flag gestiti soltanto dal sistema.
  • copy: definisce se il valore viene copiato durante la duplicazione del record. Di default True; per flag come “approvato” è meglio impostare copy=False.
  • groups: limita visibilità e modifica a gruppi utente specifici.

Come si presenta nelle viste

Nel form si visualizza come una normale checkbox HTML. Nelle liste, per facilità di scansione visiva, Odoo mostra una spunta per True e nulla per False.

Puoi personalizzare il rendering con widget: il widget toggle mostra un interruttore, ideale per impostazioni; il widget boolean_favorite visualizza una stella, usato per preferiti su prodotti o contatti.


Uso dei Booleani nei filtri (domain)

I Booleani si prestano molto bene ai domini, espressioni usate per ricerche, azioni automatizzate e regole di accesso. Un filtro che seleziona i record spuntati è semplice e leggibile:

[('needs_manual_review', '=', True)]

Dato che i valori sono solo due, il filtro rimane intuitivo anche nella forma negativa:

[('needs_manual_review', '=', False)]

Questa chiarezza semplifica integrazione con azioni automatiche e pianificate: i Booleani sono facili da valutare senza condizioni complesse.


Interazione con l’ORM di Odoo

Leggere e scrivere un Booleano in sviluppo Odoo è diretto: si legge il valore dall’oggetto record, si confronta con True/False e si assegna. L’ORM si occupa del resto e non ci sono conversioni o problemi di serializzazione, anche con XML-RPC.

Casi d’uso aziendali


I Booleani sono presenti in ogni reparto: ecco cinque esempi concreti di come vengono usati nei processi aziendali.


CRM: segnare lead qualificati

In CRM può essere utile un flag tipo is_qualified per distinguere i lead già analizzati da quelli da contattare ancora. Con una checkbox si semplifica il filtro della pipeline: i lead non qualificati possono essere gestiti dal team junior, quelli verificati vanno priorizzati.


Vendite: ordini che richiedono revisione manuale

Alcuni ordini richiedono un controllo extra (es. importo elevato o cliente nuovo). Un campo needs_manual_review, impostato automaticamente dalle regole di business, permette a finanza o operation di avere una coda chiara da processare, filtrando rapidamente gli ordini da revisionare.


Magazzino: prodotti fuori catalogo

Quando un articolo non è più venduto ma deve restare nel sistema per storico, un Booleano is_discontinued segnala ai team di acquisto e vendita che l’articolo non va riordinato né proposto al cliente. Si può usare nelle regole di visibilità, nei listini e nelle validazioni d’ordine.


Contabilità: fatture che richiedono attenzione

Per le fatture contestate o in attesa di nota di credito, un flag under_dispute è più efficace delle note libere: permette filtrare, escludere promemoria automatici e tenere separate le pratiche in sospeso senza premere per incassi inappropriati.


Risorse umane: formazione e certificazioni

HR può usare Booleani per tracciare il completamento di corsi obbligatori o certificazioni (es. safety_training_completed). È un modo semplice, verificabile e utile per generare report di conformità senza sviluppare moduli complessi.

Creare o personalizzare un campo Booleano


Tre strade per aggiungere un Booleano a un modello Odoo, a seconda della dimestichezza tecnica e del livello di controllo richiesto.


Usare Odoo Studio (No Code)

Odoo Studio è lo strumento low-code per personalizzare senza scrivere Python o XML. Per aggiungere un Booleano con Studio:

  1. Apri Studio dal menu principale (richiede l’app Studio).
  2. Vai al form dove vuoi inserire il campo.
  3. Trascina una Checkbox dalla barra laterale sulla maschera.
  4. Definisci etichetta, valore di default e vincoli di sola lettura o obbligatorietà nelle proprietà del campo.
  5. Salva e chiudi Studio.

Studio crea automaticamente il campo in database con prefisso x_studio_ e lo aggiunge alla vista: non servono restart o upgrade del modulo.


Usare Python in un modulo personalizzato

Gli sviluppatori dichiarano i Booleani direttamente nei file Python del modello: questa è l’opzione consigliata per personalizzazioni versionate, testabili e distribuibili.

(Esempio di definizione Python che aggiunge un Booleano a res.partner con copy=False e label.)

Dopo aver definito il campo, lo aggiungi alla vista XML corrispondente per renderlo visibile. Odoo crea la colonna in database durante l’installazione o l’aggiornamento del modulo.


Per i campi Booleani calcolati si usa invece il pattern compute/depends:

(Esempio Python che definisce is_high_value come campo calcolato con store=True e dipendenza da amount_total.)

Con store=True il valore calcolato viene salvato in database e può essere usato nei filtri e nei raggruppamenti senza ricalcolo a ogni apertura di pagina.


Usare l’API XML-RPC

Se gestisci personalizzazioni in modo programmato o tramite script remoto, puoi creare campi Booleani via XML-RPC sul modello ir.model.fields:

(Esempio di chiamata execute_kw per creare un campo booleano con name, descrizione e ttype='boolean'.)

Impostare state='manual' segnala a Odoo che il campo è stato creato al di fuori di un modulo, comportamento adatto per campi generati tramite Studio o API, utile in workflow di provisioning automatizzato.


Buone pratiche


1. Definisci sempre un valore di default

Anche se Odoo ritorna False quando non c’è default, è buona pratica dichiarare esplicitamente default=False: rende il codice più leggibile e evita fraintendimenti quando il campo viene usato in azioni automatiche o filtri.


2. Scegli nomi che si leggano come una domanda

I nomi dei Booleani funzionano meglio se formulati come una domanda binaria: is_verified, needs_approval, has_warranty, is_key_account. Evita etichette vaghe come flag o status che non spiegano il significato del campo.


3. Imposta copy=False per flag di approvazione o stato

Se il Booleano rappresenta uno stato che non deve essere ereditato duplicando il record (es. approvato), usa copy=False. Altrimenti la duplicazione replicherà lo stato e creerà confusione operativa.


4. Usa campi calcolati per stati derivati

Quando il valore dipende da altri campi, definiscilo come compute con @api.depends invece di aggiornare manualmente il Booleano tramite azioni server. Questo centralizza la logica, la rende automatica e più semplice da mantenere.


5. Aggiungi il Booleano alle search view se serve a filtrare

Se gli utenti devono spesso filtrare per quel flag, inseriscilo nella search view (o attiva l’opzione in Studio). In questo modo avranno un filtro rapido nella barra di ricerca invece di usare sempre i filtri avanzati.

Errori comuni


Usare Booleano per stati con più di due opzioni

Errore frequente: voler modellare uno stato a tre o più valori con più Booleani. Per stati come pending/approved/rejected è preferibile usare un campo Selection o un workflow, altrimenti la logica diventa rapidamente ingestibile.


Dimenticare copy=False sui flag di approvazione

Quando si duplica un record, tutti i valori vengono copiati di default. Se non si mette copy=False su flag di approvazione o invio, la copia risulterà già marcata come completata senza aver effettuato il processo appropriato.


Non aggiungere il campo alla search view

Un Booleano usato frequentemente per filtrare ma non presente nella search view costringe l’utente a usare il filtro avanzato ogni volta, rallentando i flussi. Se pensi che sarà usato per trovare record, aggiungilo subito alla ricerca.


Usare Booleano invece del campo active

Odoo ha già un campo active su molti modelli per nascondere o archiviare record. Se l’obiettivo è la visibilità/archiviazione, meglio usare active e il suo meccanismo nativo anziché creare una soluzione custom che duplicherà funzionalità standard.


Computed Boolean senza store=True nei filtri

Se un Booleano calcolato non ha store=True non è disponibile nelle query SQL: non potrai usarlo in filtri o raggruppamenti e Odoo ignorerà o segnalerà l’errore. Se il campo deve essere filtrabile aggiungi sempre store=True.

Conclusione


Il campo Booleano è uno di quei dettagli che smetti di notare perché funziona: dallo active che gestisce la visibilità alle dozzine di flag personalizzati, è onnipresente nelle implementazioni Odoo.


Capire il suo comportamento nel modello dati, impostare i default e gli attributi corretti e scegliere quando usare un Selection invece del Booleano aiuta a mantenere l’installazione pulita, prevedibile e facile da gestire.

Un Booleano ben progettato è trasparente per l’utente: fa il suo lavoro senza attirare l’attenzione. Usato male crea confusione, stati incoerenti e una lista di eccezioni da gestire. La differenza sta nel conoscere le regole e applicarle con coerenza.

Da parte nostra, supportiamo aziende nell’implementazione, personalizzazione e ottimizzazione di Odoo su tutte le aree aziendali. Se servono consigli sul modello dati, campi personalizzati o sviluppo di moduli, possiamo affiancarvi. Contattaci Parliamo del tuo progetto Odoo.

Campo Boolean in Odoo: Guida Completa per Sviluppatori e Amministratori
Dasolo 6 marzo 2026
Condividi articolo
Accedi per lasciare un commento