Skip to Content

Helt Guide Til Heltallfelt I Odoo

Alt du trenger å vite om Integer-feltet i Odoo-datamodellen, fra forretningsbruk til teknisk tilpasning
6. mars 2026 etter
Helt Guide Til Heltallfelt I Odoo
Dasolo
| No comments yet

Introduksjon


Hvis du noen gang har angitt en mengde på en salgsordre, sporet hvor mange dager en oppgave har vært åpen, eller konfigurert en prioritetsscore på et lead, har du brukt et heltallsfelt i Odoo. Det er en av de vanligste felttypene i Odoo-datamodellen, og likevel blir det ofte undervurdert.


Å forstå hvordan heltallsfeltet fungerer er viktig for forretningsbrukere som konfigurerer skjemaer, for utviklere som skriver tilpassede moduler, og for konsulenter som designer datamodeller for sine kunder.


Denne guiden dekker hva heltallsfeltet lagrer, hvordan det oppfører seg i Odoo-rammeverket og grensesnittet, hvordan du kan opprette eller tilpasse det med Odoo Studio eller Python, sammen med praktiske brukstilfeller og ting å være oppmerksom på.

Hva er heltallsfeltet i Odoo


I Odoo ORM er heltallsfeltet designet for å lagre hele tall. Ingen desimaler, ingen brøker. Det kartlegges direkte til en INTEGER-kolonne i PostgreSQL, som er et 4-byte signert heltall som støtter verdier fra omtrent -2 milliarder til +2 milliarder.


Fra brukerens perspektiv vises et heltallsfelt som et enkelt numerisk inndatafelt i skjemaer og som en tallkolonne i listevisninger. Det er det rette valget for alt som må telles i hele enheter: mengder, poeng, varigheter i dager, sekvensnumre, eller enhver metrikk der en halv enhet ikke gir mening.


Her er en typisk definisjon i et Python-modul:

from odoo import fields, models

class ProjectTask(models.Model):
    _inherit = 'project.task'

    estimated_hours = fields.Integer(
        string='Estimert timer',
        default=0,
    )

Parameteren string styrer etiketten som vises i grensesnittet. Parameteren default setter verdien automatisk når en ny post opprettes.


I Odoo Studio er denne felttypen listet enkelt som Heltall. Når den opprettes gjennom Studio, får den et x_studio_-prefiks. Når den opprettes via Python eller XML-RPC API, velger du det tekniske navnet selv.

Hvordan feltet fungerer


Når du definerer et heltallsfelt i Odoo, oppretter rammeverket automatisk den tilsvarende databasens kolonne under modulinstallasjon eller oppgradering. Du trenger ikke å skrive SQL-migreringer manuelt.


På databasens nivå er kolonnen typet som INTEGER i PostgreSQL. Odoo ORM tar seg av typekonvertering, så hvis brukeren ikke skriver noe, returnerer feltet 0 i stedet for None eller False. Dette er en viktig distinksjon sammenlignet med andre felttyper som Float eller Char, som kan returnere False når de er tomme.


Nøkkelfeltattributter

Her er de viktigste egenskapene du kan konfigurere på et heltallsfelt:

  • string: Etiketten som vises til brukerne i grensesnittet.
  • default: Verdien som automatisk tildeles nye poster. Standardverdi er 0 hvis ikke spesifisert.
  • required: Gjør feltet obligatorisk. Siden standardverdien allerede er 0, er dette mest nyttig når du vil blokkere lagring med en nullverdi.
  • readonly: Forhindrer brukere fra å redigere verdien direkte i grensesnittet.
  • index: Oppretter en PostgreSQL-indeks på kolonnen, noe som øker hastigheten på filtre og søk på det feltet.
  • compute: Knytter en Python-metode som beregner feltverdien dynamisk fra andre felt.
  • store: Kombinert med compute, kontrollerer om den beregnede verdien lagres i databasen eller beregnes på nytt.
  • copy: Kontrollerer om verdien overføres når en post dupliseres.
  • groups: Begrenser synligheten av feltet til spesifikke brukergrupper.

Hvordan det vises i visninger

I skjema-visninger vises et heltallfelt som et numerisk inndatafelt. Odoo legger automatisk til tusenskilletegn for lesbarhet når større tall vises.


I listevisninger vises heltallsfelt som vanlige tall, høyrejustert etter konvensjon. I søkevisninger støtter de lik, større enn og mindre enn filtre.


Du kan kombinere et heltallfelt med spesifikke widgets i visninger for å endre hvordan det ser ut. Widgeten priority forvandler for eksempel et heltallfelt til klikkbare stjerner. Widgeten progressbar kan vise en heltallsverdi som en fremdriftslinje når den kombineres med en maksimalverdi.


Interaksjon med Odoo ORM

Fra et utviklerperspektiv er det enkelt å lese og skrive heltallsfelt. Verdien er alltid en Python int. Tomme heltallsfelt returnerer 0, noe som betyr at du bør være forsiktig når du skriver betingelser som sjekker for fravær av en verdi. En null og et tomt felt ser like ut med mindre du designer rundt det.


Heltallsfelt fungerer også naturlig i beregnede felt og i domene-filtre som brukes av visninger, serverhandlinger og automatiserte handlinger gjennom Odoo-rammeverket.

Forretningsbrukstilfeller


Heltallsfeltet vises i nesten hver modul i Odoo. Her er fem praktiske scenarier der det spiller en sentral rolle.


1. CRM: Lead Scoring

Salgsgrupper ønsker ofte å prioritere leads basert på en poengsum. Du kan legge til et tilpasset heltallsfelt kalt Lead Score på CRM-mulighetsmodellen. Salgsrepresentanter oppdaterer poengsummen manuelt, eller en automatisert handling beregner den basert på kriterier som selskapsstørrelse, budsjett eller engasjementsnivå.

Dette gjør det enkelt å sortere pipelinen din etter poengsum og fokusere på de mest lovende mulighetene.


2. Salg: Minimumsordremengder

I Salgs- og Lager-modulene kontrollerer heltallsfelt minimumsordremengder på produkter eller prislister. Å sette et minimum på 10 enheter på et produkt sikrer at systemet blokkerer bestillinger under den terskelen, og sparer tid med kunder senere.


3. Lager: Rebestillingsregler

Rebestillingsregler i Odoo er helt avhengige av heltallsfelt for minimums- og maksimumsgrenseverdier. Når lageret faller under minimum, utløser Odoo automatisk en påfyllingsbestilling opp til den definerte maksimumsgrensen. Å få disse verdiene riktig er kritisk for å unngå både lagerutsolgte situasjoner og overlagring.


4. Prosjektledelse: Story Points og Estimerte Timer

Team som bruker Odoo Project for agile arbeidsflyter legger ofte til et tilpasset heltallsfelt for story points eller estimerte timer. Dette feltet vises på oppgaver i kanban- eller listevisning og hjelper teamet med å spore kapasitet og hastighet gjennom sprinter.


5. Regnskap: Betalingsbetingelser Dager

Betalingsbetingelser i Odoo Regnskap bruker heltallfelt for å definere antall dager som er tillatt for betaling. Net 30, Net 60, eller tilpassede betingelser er alle konfigurert gjennom heltallsverdier. Disse verdiene går direkte inn i beregningene av forfallsdatoer for fakturaer, noe som gjør nøyaktighet her viktig for kontantstrømstyring.

Opprette eller tilpasse heltallsfeltet


Det er to hovedmåter å legge til et heltallfelt i en Odoo-modell: ved å bruke Odoo Studio uten å skrive kode, eller ved å definere det direkte i Python for mer kontroll.


Bruke Odoo Studio

Odoo Studio er verktøyet uten kode og med lav kode som er innebygd i Odoo for å tilpasse felt og visninger. For å legge til et heltallfelt gjennom Studio:

  1. Åpne skjemaet der du vil legge til feltet.
  2. Aktiver Studio fra menyen øverst til høyre.
  3. I feltlisten til venstre, dra Heltall-feltetype inn på skjemaet ditt.
  4. Sett feltetiketten, velg om det er obligatorisk, og konfigurer standardverdien.
  5. Lagre og avslutt Studio.

Studio oppretter feltet med et x_studio_-prefiks automatisk og lagrer definisjonen i ir.model.fields. Feltet er umiddelbart tilgjengelig i skjemaer og listevisninger.


Bruke Python (Teknisk Tilpasning)

For utviklere som bygger tilpassede moduler eller utfører Odoo-utvikling med mer kontroll, er Integer-feltet definert direkte i en Python-modellklasse:


from odoo import fields, models

class CrmLead(models.Model):
    _inherit = 'crm.lead'

    x_lead_score = fields.Integer(
        string='Lead Score',
        default=0,
        index=True,
        help='Score fra 0 til 100 brukt for å prioritere muligheter',
    )

Etter å ha definert feltet i koden, kjør odoo-bin -u your_module for å bruke endringene i databasen. Kolonnen opprettes automatisk.


Bruke XML-RPC API

Du kan også opprette et Integer-felt eksternt ved hjelp av Odoo XML-RPC API. Dette er nyttig for automatiserte distribusjoner eller når du jobber uten direkte servertilgang:


field_id = models.execute_kw(
    ODOO_DB, uid, ODOO_API_KEY,
    'ir.model.fields', 'create',
    [{
        'name': 'x_lead_score',
        'field_description': 'Lead Score',
        'model_id': crm_lead_model_id,
        'ttype': 'integer',
        'state': 'manual',
    }]
)

Verdien av ttype for Integer-felt er rett og slett 'integer'. state må være 'manual' for å indikere et tilpasset felt i stedet for et moduldefinert.


Legge til et beregnet Integer-felt

Beregnet Integer-felt er kraftige for å hente verdier automatisk. For eksempel, telling av antall oppgaver knyttet til et prosjekt:


class Project(models.Model):
    _inherit = 'project.project'

    open_task_count = fields.Integer(
        string='Åpne oppgaver',
        compute='_compute_open_task_count',
        store=True,
    )

    def _compute_open_task_count(self):
        for project in self:
            project.open_task_count = self.env['project.task'].search_count([
                ('project_id', '=', project.id),
                ('stage_id.fold', '=', False),
            ])

Å sette store=True lagrer verdien i databasen, noe som gjør den tilgjengelig for filtrering og sortering i listevisninger uten å måtte beregne den på nytt hver gang.

Beste praksis


Her er praktiske tips for å få mest mulig ut av Integer-felt i Odoo-datamodellen din.


Bruk heltall for tellinger og hele enhetsmengder

Velg heltall når verdien alltid må være et helt tall og desimaler ikke gir mening. For alt som involverer penger, målinger eller mengder som kan være brøkdel, bruk Float- eller Monetary-feltet i stedet.


Sett en fornuftig standardverdi

Heltallsfelt har som standardverdi 0 i Odoo. I mange tilfeller er det greit, men tenk gjennom om null er en meningsfull verdi for ditt brukstilfelle. Hvis null betyr noe spesifikt (som ingen poeng tildelt ennå), kan det være lurt å håndtere det eksplisitt i forretningslogikken din eller legge til et hjelpe-Boolsk felt for å spore om verdien er satt.


Legg til et indeks når du filtrerer på feltet

Hvis du planlegger å filtrere, sortere eller gruppere etter et heltallsfelt ofte, legg til index=True i feltdefinisjonen. Dette oppretter en databaseindeks og kan betydelig øke hastigheten på spørringer på store datasett. Avveiningen er en liten økning i lagrings- og skrivetid, noe som nesten alltid er verdt det for felt som brukes i søkebetingelser.


Bruk store=True for beregnede heltallsfelt

Hvis du definerer et beregnet heltallsfelt som brukerne trenger å filtrere eller sortere på i listevisninger, må du alltid sette store=True. Uten det kan ikke Odoo bruke feltet i domenefiltre, og gruppering etter det vil ikke fungere som forventet.


Dokumenter områdene dine

Når et heltallsfelt har et meningsfullt område, som en poengsum fra 0 til 100, dokumenter det i help-parameteren. Denne teksten vises som et verktøytips i grensesnittet og sparer brukerne for å gjette hvilke verdier som er gyldige.


Tenk deg om før du bruker heltall for ID-er eller referanser

Hvis du trenger å referere til en annen post, bruk et Many2one-felt i stedet for å lagre en ID i et heltallsfelt manuelt. Many2one-felt gir deg innebygd navigasjon, kaskaderegler og riktig ORM-integrasjon. Et heltall som holder en rå ID er skjør og omgår Odoo-rammeverket.

Vanlige fallgruver


Dette er feilene som oftest oppstår når man arbeider med heltallsfelt i Odoo.


Forveksle Integer med Float

En vanlig feil er å bruke et heltallsfelt der et float-felt ville vært mer passende. Hvis brukerne dine noen gang trenger å skrive inn 1,5, 0,25 eller en hvilken som helst brøkverdi, er Integer feil valg. Odoo vil stille og rolig avkorte desimalinnspill, noe som fører til datatap og forvirring for brukerne. Bruk Float for mengder som kan være brøk, og Monetary for valutaverdier.


Anta at Null Betyr Tomt

Fordi heltallsfelt alltid returnerer 0 når de ikke er satt, er det ingen måte å skille mellom en post der feltet aldri ble fylt ut og en der noen bevisst skrev inn null. Hvis denne distinksjonen er viktig for arbeidsflyten din, legg til et Boolean-felt som has_score ved siden av Integer, eller bruk et Float-felt med en False standard i stedet.


Ikke Legge til en Indeks på Ofte Filtrerte Felt

Hvis du legger til et heltallsfelt og senere bruker det som et filter i visninger eller automatiserte handlinger, kan det å glemme å legge til index=True merkbart redusere hastigheten på listevisninger i større databaser. Det er lettere å legge til indeksen fra starten av enn å optimalisere senere.


Bruke Integer til å Lagrere Desimalbaserte Forhold

Noen ganger lagrer utviklere prosentandeler som heltallsfelt, og skriver 75 for å bety 75%. Dette fungerer inntil noen trenger 72,5%, på hvilket tidspunkt feltet bryter kravet. Hvis det er noen sjanse for at en prosentandel eller forhold vil trenge desimalpresisjon, bruk Float fra starten av.


Glemme store=True på Beregnede Felt Brukt i Filtre

Dette er en av de vanligste feilene i Odoo-utvikling. Et beregnet heltallsfelt uten store=True kan ikke brukes i domenefiltre, automatiserte handlinger eller listevisnings gruppering. Tenk alltid på hvor feltet vil bli brukt før du bestemmer deg for om det skal lagres.

Konklusjon


Heltallsfeltet er en grunnleggende byggestein i Odoo-datamodellen. Det ser enkelt ut, og i de fleste tilfeller er det det. Men å kjenne til spesifikke atferder, som at tomme felt returnerer 0 og at beregnede felt trenger store=True for å fungere i filtre, hjelper deg å unngå typer feil og designproblemer som er enkle å introdusere og vanskeligere å fikse senere.


Enten du konfigurerer Odoo for et salgsteam, bygger et tilpasset modul, eller designer gjenbestillingsregler for et lager, vil heltallsfelt dukke opp i hvert steg. Å forstå hvordan de fungerer i Odoo ORM, hvordan man oppretter dem med Studio eller Python, og når man skal bruke dem i stedet for Float eller Monetary, er en del av det som gjør en Odoo-implementering solid og vedlikeholdbar.


Hvis du jobber med en Odoo-tilpasning og ønsker å sikre at datamodellen din er bygget på riktig måte fra starten av, vil denne typen grunnleggende kunnskap lønne seg gjennom hele prosjektets levetid.

Arbeid med en Odoo-ekspert


Hos Dasolo hjelper vi selskaper med å implementere, tilpasse og optimalisere Odoo på tvers av alle moduler og bransjer. Enten du trenger å designe en ren datamodell, bygge tilpassede felt og arbeidsflyter, eller koble Odoo til eksterne systemer gjennom API-en, har vi erfaringen til å gjøre det riktig.


Hvis du har spørsmål om Odoo-oppsettet ditt eller ønsker å diskutere et prosjekt, ta kontakt med vårt team. Vi hjelper gjerne til.

Helt Guide Til Heltallfelt I Odoo
Dasolo 6. mars 2026
Share this post
Logg inn to leave a comment