Skip to Content

Boolsk Felt I Odoo: Den Komplette Guiden

Alt du trenger å vite om Boolean-feltet i Odoo-datamodellen, fra avmerkingsboksens oppførsel til teknisk tilpasning
6. mars 2026 etter
Boolsk Felt I Odoo: Den Komplette Guiden
Dasolo
| No comments yet

Introduksjon


Boolean-feltet er en av de enkleste felttypene i Odoo, og også en av de mest brukte. Hver gang du krysser av i en avkrysningsboks på en salgsordre, markerer en kunde som aktiv, eller flagger et produkt som favoritt, interagerer du med et Boolean-felt.


Til tross for sin enkelhet har Boolean-feltet noen atferder som er verdt å forstå skikkelig. Å vite når du skal bruke det, når du ikke skal bruke det, og hvordan du konfigurerer det godt, vil hjelpe deg med å bygge renere Odoo-miljøer og unngå noen vanlige feil som selv erfarne team gjør.


Denne guiden dekker Boolean-feltet fra alle vinkler: hva det lagrer, hvordan det oppfører seg i Odoo-datamodellen og brukergrensesnittet, hvordan du oppretter eller tilpasser det ved hjelp av Odoo Studio eller Python, virkelige forretningsbrukstilfeller, og praktiske tips for å få mest mulig ut av denne felttypen.

Hva er Boolean-feltet i Odoo


I Odoo ORM lagrer Boolean-feltet en av to verdier: True eller False. Det kartlegger direkte til en BOOLEAN-kolonne i PostgreSQL. Det er ingen tvil her: feltet er enten avkrysset eller ikke avkrysset, aktivert eller deaktivert, ja eller nei.


Fra brukerens perspektiv vises et Boolean-felt som en avkrysningsboks i skjemaer. I listevisninger vises det vanligvis som et avkrysningsikon når verdien er True og ingenting når den er False. I noen konfigurasjoner vises det som en vippbryter i stedet for en tradisjonell avkrysningsboks, avhengig av widgeten som brukes.


Slik ser en definisjon av et Boolean-felt ut i et Python Odoo-modul:

from odoo import fields, models

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    needs_manual_review = fields.Boolean(
        string='Needs Manual Review',
        default=False,
    )

Parameteret string setter etiketten som vises i grensesnittet. Parameteret default kontrollerer den innledende verdien når nye poster opprettes. Uten en standardverdi behandler Odoo feltet som False automatisk, men det anses som god praksis å erklære det eksplisitt.

I Odoo Studio kalles denne samme felttypen ganske enkelt en avkrysningsboks. Felt som opprettes gjennom Studio får automatisk et x_studio_-prefiks. Når de opprettes gjennom Python eller XML-RPC API, definerer du det tekniske navnet selv.

Hvordan feltet fungerer


Når du legger til et Boolean-felt i en Odoo-modell, oppretter rammeverket den tilsvarende kolonnen i PostgreSQL-databasen automatisk under installasjon eller oppgradering av modulen. Ingen manuell SQL-migrering er nødvendig.


En viktig ting å forstå: i Odoo holder et Boolean-felt aldri None eller NULL. ORM returnerer alltid enten True eller False. Selv om databasekolonnen ikke har noen verdi, vil Odoo returnere False når du leser feltet. Dette er forskjellig fra andre felttyper som Many2one eller Char, hvor en tom verdi kommer tilbake som False eller None og du må sjekke for begge.


Nøkkelfeltattributter

Her er de viktigste egenskapene du kan konfigurere på et Boolean-felt i Odoo-rammeverket:

  • default: Setter verdien når en ny post opprettes. Nesten alltid satt til False, men kan være True for opt-out-scenarier.
  • compute: Knytter en Python-metode som beregner verdien dynamisk. Nyttig for avledede flagg basert på tilstanden til andre felt.
  • store: Når den brukes med compute, bestemmer den om verdien lagres i databasen. Med store=True kan beregnede Boolean-felt brukes i søkefiltre og rapporter.
  • readonly: Forhindrer brukere fra å endre feltverdien manuelt i grensesnittet. Vanlig for beregnede flagg som kun skal settes av systemet.
  • copy: Kontrollerer om feltverdien overføres når en post dupliseres. Standard er True. For flagg som "er godkjent", ønsker du vanligvis copy=False slik at dupliserte poster starter rent.
  • groups: Begrenser synlighet og redigering til spesifikke brukergrupper.

Hvordan det vises i visninger

I skjema-visninger gjengis et Boolean-felt som en standard HTML avkrysningsboks. I listevisninger viser Odoo et hakeikon for True og ingenting for False som standard. Dette gjør listevisninger enkle å skanne visuelt.

Du kan endre hvordan et Boolean-felt gjengis ved hjelp av visningswidgets. toggle-widgeten viser det som en bryter i stedet for en avkrysningsboks, noe som fungerer godt for innstillinger eller preferanser. For skrivebeskyttet visning gjengir boolean_favorite-widgeten verdien som et stjerneikon, som du kan se på produkt- og kontaktformer i standard Odoo.


Bruk av Boolean-felt i domene-filtre

Boolean-felt er veldig praktiske å bruke i Odoo-domener, som er filteruttrykkene som brukes i søkevisninger, automatiserte handlinger og tilgangsregler. Et filter for ikke-kontrollerte poster ser slik ut:

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

Siden det bare er to mulige verdier, kan du også bruke den enklere formen uten operator:

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

Denne enkle filtreringsadferden er en grunn til at Boolean-felt integreres så rent med Odoo automatiserte handlinger, planlagte handlinger og serverhandlinger. De er enkle å sjekke og handle på uten komplekse betingelser.


Interaksjon med Odoo ORM

Å lese og skrive Boolean-felt i Odoo-utvikling er så direkte som det blir. Du får tilgang til verdien på rekordobjektet, sammenligner den med True eller False, og tildeler den direkte. ORM håndterer alt annet. Det er ingen konverteringer, ingen serialiseringskantsaker, og ingen overraskelser når du sender verdier gjennom XML-RPC API-en heller, siden True og False kartlegges rent til deres XML-RPC boolean-ekvivalenter.

Forretningsbrukstilfeller


Boolean-felt vises på tvers av alle avdelinger i en typisk Odoo-implementering. Her er fem praktiske eksempler fra virkelige forretningsarbeidsflyter.


CRM: Spore om en Lead har blitt Kvalifisert

Salgsgrupper trenger ofte å merke hvilke leads som har blitt gjennomgått av en senior representant og bekreftet som levedyktige muligheter. Et Boolean-felt kalt is_qualified på CRM lead-modellen gir teamene en enkel måte å filtrere sin pipeline. Ukvalifiserte leads kan håndteres av junioransatte, mens de kvalifiserte får prioritert oppmerksomhet. Denne enkle avkrysningsboksen erstatter behovet for en dedikert fase eller et statusfelt kun for dette formålet.


Salg: Merke Ordrer som Trenger Manuell Gjennomgang

I noen virksomheter krever visse salgsordrer ekstra godkjenning før de bekreftes, for eksempel ordrer over et visst beløp eller for nye kunder. Et Boolean-felt needs_manual_review på salgsordren, kombinert med en automatisert handling som setter det til True basert på forretningsregler, gir finans- eller driftsteamet en klar kø å jobbe fra. De kan filtrere ordreliste etter dette feltet og behandle godkjenninger uten å måtte grave gjennom hele ordreliste.


Lager: Merke Produkter som Ute av Katalog

Når et produkt ikke lenger selges, men fortsatt må forbli i systemet for historiske opptegnelser, er det ikke alltid riktig alternativ å arkivere det. Et Boolean-felt is_discontinued på produktskjemaet lar innkjøps- og salgsteam se med et blikk at varen ikke skal bestilles på nytt eller gis tilbud til kunder. Du kan bruke dette feltet i prislistefiltre, valideringsregler for innkjøpsordrer og innstillinger for synlighet i nettbutikk.


Regnskap: Identifisere Fakturaer som Krever Oppmerksomhet

Finansgrupper trenger noen ganger å merke fakturaer som har blitt bestridt, inneholder en prisavvik, eller venter på en kreditnota. I stedet for å stole på fritekstnotater i chatteren, gir et Boolean-felt under_dispute teamet en strukturert måte å filtrere og rapportere om disse fakturaene. Automatiserte påminnelser kan også bli undertrykt for fakturaer med dette flagget satt til True, noe som forhindrer unødvendig betalingspress på en kunde mens et problem blir løst.


HR: Spore Sertifiseringer og Fullføring av Opplæring

HR-avdelinger må ofte bekrefte at ansatte har fullført obligatorisk opplæring eller har en nødvendig sertifisering. Et Boolean-felt i ansattregisteret, som safety_training_completed, gir en enkel og revidert måte å spore dette på. Ledere kan filtrere teamlisten sin for å se hvem som fortsatt må fullføre opplæringen, og dataene kan mates inn i samsvarsrapporter uten å bygge et komplekst dedikert modul.

Opprette eller tilpasse Boolean-feltet


Det er tre hovedmetoder for å legge til et Boolean-felt i en Odoo-modell, avhengig av din tekniske oppsett og nivået av tilpasning du trenger.


Bruke Odoo Studio (Ingen kode)

Odoo Studio er det innebygde lavkodeverktøyet for å tilpasse Odoo uten å skrive noe Python eller XML. For å legge til et Boolean-felt gjennom Studio:

  1. Åpne Odoo Studio fra hovedmenyen (krever Studio-appen).
  2. Naviger til skjemaet der du vil legge til feltet.
  3. Dra et Avkrysningsboks-felt fra sidepanelet til skjemaoppsettet.
  4. Sett etiketten, standardverdien og eventuelle nødvendige eller skrivebeskyttede begrensninger i feltets egenskapspanel.
  5. Lagre og lukk Studio.

Studio håndterer alt automatisk: feltet opprettes i databasen med et x_studio_-prefiks og legges til visningen. Ingen omstart eller oppgradering er nødvendig.


Bruke Python i en tilpasset modul

For utviklere som bygger Odoo-moduler, defineres Boolean-felt direkte i Python-modellfiler. Dette er den anbefalte tilnærmingen for enhver tilpasning som må versjonskontrolleres, testes og distribueres på tvers av flere miljøer:

from odoo import fields, models

class ResPartner(models.Model):
    _inherit = 'res.partner'

    x_is_key_account = fields.Boolean(
        string='Key Account',
        default=False,
        copy=False,
    )

Etter å ha definert feltet, legger du det til i den relevante visningen XML-filen slik at det vises i grensesnittet. Odoo oppretter databasens kolonne når modulen installeres eller oppgraderes.


For beregnede Boolean-felt ser mønsteret slik ut:

from odoo import api, fields, models

class SaleOrder(models.Model):
    _inherit = 'sale.order'

    is_high_value = fields.Boolean(
        string='High Value Order',
        compute='_compute_is_high_value',
        store=True,
    )

    @api.depends('amount_total')
    def _compute_is_high_value(self):
        for order in self:
            order.is_high_value = order.amount_total >= 10000

Med store=True lagres den beregnede verdien i databasen, noe som gjør den tilgjengelig i søkefiltre og gruppering av listevisninger uten å måtte beregne på nytt ved hver sideinnlasting.


Bruke XML-RPC API

Hvis du administrerer Odoo-tilpasninger programmatisk, for eksempel som en del av en distribusjonspipeline eller et eksternt konfigurasjonsskript, kan Boolean-felt opprettes via XML-RPC API på ir.model.fields-modellen:

field_id = models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'create',
    [{
        'name': 'x_needs_manual_review',
        'field_description': 'Needs Manual Review',
        'model_id': model_id,
        'ttype': 'boolean',
        'state': 'manual',
    }]
)

Verdien state: manual forteller Odoo at dette feltet ble opprettet utenfor en modul, som er den riktige innstillingen for felt opprettet gjennom Studio eller API. Dette er nøyaktig hvordan Dasolo håndterer fjernfeltopprettelse for kunder som en del av automatiserte konfigurasjonsarbeidsflyter.


Beste praksis


1. Definer alltid en standardverdi

Selv om Odoo returnerer False for Boolean-felt uten standard, er det beste praksis å eksplisitt erklære default=False i feltdefinisjonen din. Det kommuniserer intensjon klart til alle som leser modellkoden og forhindrer tvetydighet når feltet brukes i automatiserte handlinger eller filtre.


2. Bruk beskrivende navn som leses som spørsmål

Boolske felt navn fungerer best når de leses naturlig som et ja/nei spørsmål. Navn som is_verified, needs_approval, has_warranty, eller is_key_account er umiddelbart forståelige. Unngå vage navn som flag, status, eller check, som ikke forteller deg noe om hva feltet faktisk representerer.


3. Sett copy=False for godkjennings- og statusflagg

Hvis ditt boolske felt representerer en tilstand som ikke skal overføres når en post dupliseres, for eksempel "er godkjent" eller "har blitt sendt", legg alltid til copy=False. Ellers vil duplisering av en post kopiere flaggverdien, noe som kan føre til at poster ser ut til å være godkjent eller sendt når de ikke har vært gjennom den riktige prosessen.


4. Bruk beregnede boolske felt for avledede tilstander

Unngå å skrive serverhandlinger eller Python-kode som manuelt oppdaterer et boolsk felt som svar på endringer i andre felt. Definer det i stedet som et beregnet felt med @api.depends(). Dette holder logikken din på ett sted, kjører automatisk ved hver lagring, og er mye enklere å vedlikeholde og feilsøke enn spredte skriveoperasjoner på tvers av flere steder i kodebasen.


5. Legg til boolske felt i søkevisninger når de brukes til filtrering

Hvis brukere regelmessig trenger å filtrere poster basert på et boolsk felt, legg det eksplisitt til søkevisningen. I Studio, aktiver søkealternativet i feltets egenskapspanel. I kode, legg det til <search> visnings-XML. Dette gir brukerne en ren filterknapp i søkefeltet i stedet for å tvinge dem til å bruke avanserte filtre hver gang.

Vanlige fallgruver


Bruke boolske for en tilstand som har mer enn to alternativer

Dette er den vanligste feilen team gjør med boolske felt. Hvis en post kan være i en av tre eller flere tilstander, som "venter", "godkjent", og "avvist", er et boolsk felt feil verktøy. Du ender opp med å legge til et andre boolsk, så et tredje, og logikken blir umulig å håndtere. Bruk et valgfelt eller en riktig statusarbeidsflyt i stedet. Boolske felt er for virkelig binære situasjoner.


Glemmer å sette copy=False på godkjenningsflagg

Når brukere dupliserer poster i Odoo, kopieres alle feltverdier som standard. En ordre som ble merket som "godkjent" eller "gjennomgått" vil ha disse flaggene satt til True på duplikatet umiddelbart. Hvis den dupliserte posten skal starte fra en ren tavle, legg til copy=False på hvert flagg som representerer en fullført handling eller en oppnådd tilstand.


Ikke legge feltet til søkevisningen

Et Boolean-felt som brukerne må filtrere på, men som ikke er i søkebildet, tvinger dem til å åpne den avanserte filterdialogen hver gang. Dette bremser ned daglige arbeidsflyter betydelig. Hvis du legger til et Boolean-felt som folk vil bruke for å finne poster, ta det ekstra steget for å legge det til søkebildet samtidig.


Bruke et Boolean-felt i stedet for aktivt felt

Odoo har et innebygd active-felt på de fleste modeller som kontrollerer om poster vises i standardvisninger. Hvis ditt Boolean-felt er ment å skjule eller arkivere poster, bruk det native active-feltet og dets veksle-mekanisme i stedet for å bygge en tilpasset synlighetsløsning. Dette holder datamodellen din i samsvar med standard Odoo-atferd og fungerer godt med arkiverings- og gjenopprettingshandlingene som allerede er innebygd i brukergrensesnittet.


Beregnede Boolean-felt uten store=True i filtre

Hvis du oppretter et beregnet Boolean-felt og prøver å bruke det i søkefiltre eller gruppering i listevisning uten store=True, vil Odoo kaste en feil eller stille ignorere filteret. Ikke-lagringsberegnede felt eksisterer bare i minnet og kan ikke brukes i SQL-spørringer. Hvis et beregnet Boolean må være filtrerbart eller rapporterbart, legg alltid til store=True i feltdefinisjonen.

Konklusjon


Boolean-feltet er den typen felt du slutter å legge merke til nettopp fordi det fungerer så godt. Det er overalt i Odoo, fra active-flagget som kontrollerer synlighet for poster, til is_published-feltet som driver nettstedet ditt, til dusinvis av tilpassede flagg som bedrifter legger til i sine egne arbeidsflyter hver dag.


Å forstå hvordan det oppfører seg i Odoo-datamodellen, hvordan du konfigurerer det riktig med de rette standardene og attributtene, og når du skal bruke det i forhold til andre felttyper som Selection, vil hjelpe deg med å bygge implementeringer som er rene, forutsigbare og enkle å vedlikeholde.

Et godt utført Boolean-felt er usynlig for sluttbrukeren. Det fungerer bare. Et Boolean-felt som brukes feil, skaper forvirring, korrupte tilstander og en voksende bunke med omveier. Forskjellen ligger i å kjenne reglene og anvende dem konsekvent.

Hos Dasolo hjelper vi selskaper med å implementere, tilpasse og optimalisere Odoo på tvers av alle avdelinger. Enten du trenger hjelp til å designe en ren datamodell, legge til tilpassede felt i arbeidsflytene dine, eller bygge et fullstendig Odoo-modul fra bunnen av, er teamet vårt her for å støtte deg. Ta kontakt med oss og la oss snakke om Odoo-prosjektet ditt.

Boolsk Felt I Odoo: Den Komplette Guiden
Dasolo 6. mars 2026
Share this post
Logg inn to leave a comment