Siirry sisältöön

Boolean-kenttä Odoo:ssa — Täydellinen Opas

Kaikki olennainen Odoon Boolean-kentästä: miten valintaruudut toimivat ja miten kenttää muokataan teknisesti
6. maaliskuuta 2026 kirjoittanut
Boolean-kenttä Odoo:ssa — Täydellinen Opas
Dasolo
| Ei vielä kommentteja

Johdanto


Boolean-kenttä on Odoon yksinkertaisimpia mutta samalla laajimmin käytettyjä kenttätyyppejä. Joka kerta, kun rastitat valintaruudun myyntitilauksella, merkitset asiakkaan aktiiviseksi tai lisäät tuotteen suosikkeihin, käsittelet Boolean-arvoa.


Vaikka kyseessä on suoraviivainen kenttä, sen käyttäytymisessä on muutama tärkeä nyanssi. Oikeanlainen käyttö ja asetusten ymmärtäminen auttavat pitämään Odoo-ympäristön siistinä ja välttämään virheitä, joita jopa kokeneet tiimit toisinaan tekevät.


Tässä oppaassa käydään Boolean-kenttää läpi kattavasti: mitä se tallentaa, miten se näkyy käyttöliittymässä ja tietomallissa, miten kentän voi lisätä tai räätälöidä Studio-työkalulla tai Pythonilla, mitkä ovat käytännön käyttötapaukset ja millä vinkeillä saa eniten irti.

Mikä on Boolean-kenttä Odoossa


Odoon ORM:ssä Boolean-kenttä voi olla vain toinen kahdesta tilasta: True tai False. Se vastaa suoraan PostgreSQL:n BOOLEAN-saraketta. Kentän tila on yksiselitteinen: valittu tai ei-valittu — kyllä tai ei.


Käyttäjän näkökulmasta Boolean-kenttä näkyy lomakkeilla yleensä valintaruuduna muodossa. Listanäkymissä se näyttää usein ruksin, kun arvo on True, ja tyhjän kentän, kun arvo on False. Joissain tapauksissa käytetään myös kytkintyylistä widgettiä, jolloin se näyttää liukukytkimen perinteisen ruudun sijaan.


Alla on esimerkki siitä, miten Boolean-kenttä määritellään Pythonilla Odoon moduulissa:

from odoo import fields, models

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

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

string-parametri määrittää kentän nimen käyttöliittymässä. default asettaa oletusarvon uusille riveille. Vaikka Odoo palauttaisi oletuksena False, on hyvä käytäntö määritellä arvo selkeästi koodissa.

Odoo Studion puolella sama kenttätyyppi on nimetty yksinkertaisesti Checkbox:ksi. Studiolla luodut kentät saavat automaattisesti x_studio_-etuliitteen. Pythonilla tai XML-RPC:llä luodessa teknisen nimen määrittelet itse.

Miten kenttä toimii


Kun lisäät Boolean-kentän malliin, Odoo hoitaa vastaavan tietokantasarakkeen luomisen automaattisesti moduulin asennuksen tai päivityksen yhteydessä. Manuaalista SQL-migraatiota ei yleensä tarvita.


Tärkeä huomio: Boolean-kenttä ei koskaan palauta None tai NULL Odoossa. ORM palauttaa aina joko True tai False. Jos sarake tietokannassa on tyhjä, Odoo tulkitsee sen lukemalla arvoksi False. Tämä eroaa esimerkiksi Many2one- tai Char-kentistä, joissa tyhjä arvo voi tulla takaisin Falsena tai Nonena.


Kentän keskeiset attribuutit

Seuraavat ominaisuudet ovat tärkeimpiä Boolean-kentälle Odoo-kehyksessä:

  • default: Määrittää arvon, kun luodaan uusi rivi. Yleensä False, mutta esimerkiksi opt-out-skenaarioissa voi olla True.
  • compute: Kytkee Python-metodin, joka laskee arvon dynaamisesti. Hyvä tapa johtaa lipun arvo muista kentistä riippuen.
  • store: Käytetään yhdessä computen kanssa määrittämään, tallennetaanko laskettu arvo tietokantaan. store=True mahdollistaa suodatukset ja raportoinnin laskettua arvoa vastaan.
  • readonly: Estää käyttäjiä muuttamasta kentän arvoa käyttöliittymässä. Tavallinen valinta järjestelmän asettamille laskennallisille lipuille.
  • copy: Ohjaa, kopioidaanko kentän arvo, kun rivi duplikoidaan. Oletusarvo on True. Hyvä asettaa copy=False esimerkiksi hyväksymislipuille, jotta kopio alkaa puhtaalta pöydältä.
  • groups: Rajaa kentän näkyvyyden ja muokkausoikeudet tiettyihin käyttäjäryhmiin.

Miten kenttä näkyy näkymissä

Lomakkeilla Boolean näkyy HTML-valintaruudukkona. Listanäkymissä Odoo näyttää oletuksena ruksin, kun arvo on True, ja tyhjän, kun se on False — tämä tekee listan silmäilystä nopeaa.

Voit muuttaa esitystapaa widgeteillä. toggle-widget näyttää kytkimen, mikä sopii asetuksille tai käyttäjävalinnoille. Lukutilassa boolean_favorite-widget muuntaa lipun tähdeksi, kuten tuotteissa ja kontakteissa näkyy vakio-Odoossa.


Boolean-kenttien käyttö domaineissa (suodattimissa)

Booleanit sopivat erinomaisesti Odoon domaineihin, joita käytetään hakunäkymissä, automatisoinneissa ja käyttöoikeuksissa. Suodatin vaikkapa valituille riveille näyttää tältä:

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

Kahden tilan takia suodatus on myös hyvin suoraviivaista, ja voit ilmaista ehdon yksinkertaisesti ilman monimutkaisia operaattoreita.

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

Tämän yksinkertaisen logiikan ansiosta Boolean-kentät sopivat hyvin automatisoituihin toimiin, ajoihin ja palvelin-toimintoihin — niitä on helppo tarkistaa ilman monimutkaista ehtorakennetta.


Vuorovaikutus Odoo ORM:n kanssa

Boolean-kenttien lukeminen ja kirjoittaminen on suoraviivaista: käsittelet arvoa suoraan tietueobjektissa, vertaat sitä True tai False -arvoihin ja asetat sen tarpeen mukaan. ORM huolehtii muusta; konversioita tai sarjauksia ei yleensä tarvitse miettiä, eikä XML-RPC-rajapinnassakaan tule yllätyksiä.

Liiketoimintatapaukset


Boolean-kenttiä käytetään läpi organisaation eri osastojen arjessa. Tässä viisi käytännön esimerkkiä, joissa kenttä tarjoaa selkeän hyödyn.


CRM: Potentiaalin kelpuuttamisen seuranta

Myyntitiimit tarvitsevat usein tavan merkitä, mitkä liidit on arvioitu kelvollisiksi. Kenttä kuten is_qualified CRM-liidillä helpottaa putken suodatusta: juniorit voivat käsitellä karsimattomia liidejä ja seniorit keskittyä kelpuutettuihin mahdollisuuksiin. Tällainen yksinkertainen valinta korvaa usein tarpeen lisävaiheelle tai monimutkaiselle statukselle.


Myynti: Tilaukset jotka vaativat manuaalisen tarkastuksen

Joissain yrityksissä tietyt myyntitilaukset, esimerkiksi suuruuden tai uuden asiakkaan takia, vaativat hyväksynnän ennen vahvistusta. needs_manual_review-kenttä myyntitilauksella yhdessä automatisoidun säännön kanssa tuottaa selkeän käsittelyjonon talouden tai operaatioiden tiimille.


Varasto: Tuotteen merkitseminen poistuneeksi valikoimasta

Kun tuote ei ole enää myynnissä mutta historialliset tiedot pitää säilyttää, arkistoiminen ei aina ole paras ratkaisu. is_discontinued-kenttä tuotetietueessa kertoo heti, ettei tuotetta tule tilata tai tarjota asiakkaille, ja kenttää voi hyödyntää hinnastosuodattimissa, ostoprosesseissa ja verkkokaupan näkyvyydessä.


Kirjanpito: Laskut, jotka vaativat huomiota

Taloustiimit merkitsevät joskus laskuja, jotka ovat ristiriidassa, odottavat hyvitystä tai joissa on hinnoittelupoikkeama. under_dispute-kenttä tarjoaa rakenteellisen tavan suodattaa ja raportoida näitä laskuja — se on paremmin hallittavissa kuin vapaamuotoiset muistiinpanot, ja automaattiset muistutukset voidaan hiljentää, kun riita on merkitty.


HR: Sertifikaattien ja koulutusten seuranta

Henkilöstöhallinto tarvitsee usein yksinkertaisen tavan todentaa pakollisten koulutusten suoritus. Esimerkiksi safety_training_completed-kenttä työntekijällä kertoo helposti, kuka on vielä koulutuksen tarpeessa ja tuottaa suoraan tietoja vaatimustenmukaisuusselvityksiin ilman erillistä moduulia.

Boolean-kentän luominen tai muokkaaminen


Boolean-kentän lisäämiseen Odooon on kolme pääasiallista tapaa teknisestä tarpeesta riippuen.


Odoo Studio (kooditon)

Odoo Studio on sisäänrakennettu työkalu, jolla voit muokata Odoota ilman Pythonia tai XML:ää. Boolean-kentän lisääminen Studiolla tapahtuu näin:

  1. Avaa Odoo Studio päävalikosta (vaatii Studio-sovelluksen).
  2. Siirry lomakkeelle, johon haluat lisätä kentän.
  3. Raahaa sivupalkista Checkbox-kenttä lomakkeeseen.
  4. Aseta kentän otsikko, oletusarvo ja mahdolliset pakollisuus- tai lukutila-asetukset kenttäominaisuuksista.
  5. Tallenna ja sulje Studio.

Studio hoitaa kaiken automaattisesti: kenttä luodaan tietokantaan x_studio_-etuliitteellä ja lisätään näkymään. Ei vaadi palvelimen uudelleenkäynnistystä tai moduulipäivitystä.


Python mukautetussa moduulissa

Kehittäjille, jotka rakentavat Odoo-moduuleja, Boolean-kentät määritellään Pythonissa. Tämä on suositeltava tapa, kun haluat versionhallintaa, testattavuutta ja siirrettävyyttä ympäristöstä toiseen:

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,
    )

Määriteltyäsi kentän lisäät sen sopivaan näkymä-XML:ään, jotta se näkyy käyttöliittymässä. Odoo luo tietokantasarakkeen moduulin asennuksen tai päivityksen yhteydessä.


Laskettujen Boolean-kenttien malli näyttää usein tältä:

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

Kun käytät store=True-asetusta, laskettu arvo tallennetaan tietokantaan, jolloin sitä voi käyttää suodattimissa ja ryhmittelyissä ilman jatkuvaa uudelleenlaskentaa.


XML-RPC-rajapinnan kautta

Jos hallinnoit Odoo-räätälöintejä ohjelmallisesti esimerkiksi deployment-putkessa, Boolean-kenttiä voi luoda myös XML-RPC-rajapinnan kautta ir.model.fields-malliin:

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',
    }]
)

state: manual kertoo Odoolle, että kenttä on luotu moduulin ulkopuolella — oikea asetus Studion tai API:n kautta luoduille kentille. Tätä käytetään esimerkiksi, kun automatisoimme kenttien luontia etäkonfiguraatioissa.


Hyvät käytännöt


1. Määrittele aina oletusarvo

Vaikka Odoo palauttaa tyhjästä kentästä False, on selkeyden vuoksi hyvä määritellä default=False kenttämäärittelyssä. Se kertoo selkeästi koodin lukijalle kentän tarkoituksen ja estää epäselvyyksiä automatisoinneissa.


2. Käytä kuvaavia nimiä, jotka muodostavat kysymyksen

Boolean-nimet toimivat parhaiten, kun ne lukevat luonnollisesti kyllä/ei-kysymyksenä: is_verified, needs_approval, has_warranty tai is_key_account. Vältä epämääräisiä nimiä kuten flag tai status, jotka eivät kerro merkitystä.


3. Aseta copy=False hyväksyntä- ja tilalipuissa

Jos kenttä ilmaisee tilan, jota ei tulisi kopioida duplikoitaessa (esim. "on hyväksytty"), lisää copy=False. Ilman sitä duplikoidulla rivillä voi olla virheellisesti valmis- tai lähetetty-tila.


4. Käytä laskettuja Boolean-kenttiä johdettuihin tiloihin

Älä hajota logiikkaa ympäriinsä palvelintoimintoihin, jotka muuttavat lippua manuaalisesti. Määrittele kenttä laskettuna (compute) ja riippuvuutena @api.depends(), jolloin logiikka pysyy yhdessä paikassa, toimii automaattisesti ja on helpompi ylläpitää.


5. Lisää Boolean-kentät hakunäkymiin, jos niitä suodatetaan usein

Jos käyttäjät suodattavat tietoja säännöllisesti Boolean-kentän perusteella, lisää kenttä hakunäkymään. Studiolla voit ottaa haun käyttöön kenttäominaisuuksista; koodissa lisää kenttä <search>-näkymään. Tämä nopeuttaa arkea verrattuna aina käyttämällä edistyneitä suodattimia.

Yleisimmät sudenkuopat


Booleanin käyttö tilanteessa, jossa tiloja on enemmän kuin kaksi

Yleisin virhe on yrittää käyttää Booleania monivalintaiseen tilaan. Jos tila voi olla esimerkiksi "odottaa", "hyväksytty" tai "hylätty", Boolean ei sovi. Usein päädyt luomaan toisen ja kolmannenBoolen, jolloin logiikka menee sotkuun. Käytä Selection-kenttää tai tilavirtamallia moniasteisille tiloille.


Unohtaminen asettaa copy=False hyväksymislipuissa

Koska kentät kopioituvat oletuksena, duplikoitu rivi voi periyttää tilaliput virheellisesti. Lisää copy=False kenttiin, jotka edustavat suoritettua toimenpidettä tai saavutettua tilaa.


Kentän lisäämättä jättäminen hakunäkymään

Jos kenttää käytetään usein suodatukseen mutta sitä ei ole hakunäkymässä, käyttäjät joutuvat avaamaan edistyneet suodatusvalinnat jatkuvasti. Tämä hidastaa työtä — lisää suodattamiseen käytettävät Booleanit suoraan hakunäkymään.


Booleanin käyttäminen sen sijaan, että hyödyntäisi valmiina olevaa active-kenttää

Odoo:ssa on useimmissa malleissa valmiina active-kenttä, joka piilottaa tai palauttaa rivejä näkymiin. Jos tarkoituksesi on arkistoida tai piilottaa rivejä, käytä olemassa olevaa active-kenttää ja siihen liittyviä toimintoja sen sijaan, että rakentaisit oman helposti ristiriitoihin johtavan ratkaisun.


Laskettu Boolean ilman store=True suodattimissa

Jos teet lasketun Booleanin ja et aseta store=True, et voi suodattaa sen perusteella tai ryhmitellä sillä raportissa — kenttä on vain muistissa. Jos laskettu arvo pitää olla haettavissa tai raportoitavissa, merkitse se tallennettavaksi.

Yhteenveto


Boolean-kenttä toimii niin hyvin, että sitä ei usein huomaa: se on kaikkialla, active-lipusta verkkosivujen julkaisukenttiin ja yritysten omiin lippuihin.


Kun ymmärrät, miten kenttä käyttäytyy tietomallissa, asetat oikeat oletusarvot ja valitset Booleanin vain silloin kun se on sopiva, saat aikaan selkeämpiä ja helpommin ylläpidettäviä Odoo-toteutuksia.

Hyvin suunniteltu Boolean-kenttä on loppukäyttäjän näkökulmasta näkymätön — se vain toimii. Väärin käytetty Boolean sen sijaan luo epäselvyyksiä, ristiriitoja ja työkierrätystä. Erot tulee tuntea ja soveltaa johdonmukaisesti.

Me Dasololla autamme yrityksiä ottamaan Odoosta kaiken irti: suunnittelemme tietomalleja, lisäämme räätälöityjä kenttiä ja kehitämme kokonaisia moduuleja tarpeesi mukaan. Ota yhteyttä meihin ja keskustellaan sinun Odoo-projektistasi.

Boolean-kenttä Odoo:ssa — Täydellinen Opas
Dasolo 6. maaliskuuta 2026
Jaa tämä kirjoitus
Kirjaudu sisään jättääksesi kommentin