Overslaan naar inhoud

Integer Field in Odoo: De Complete Gids

Een duidelijk overzicht van het Integer-veld in Odoo: wat het praktisch betekent voor je bedrijfsgegevens en hoe je het technisch aanpast. Hier leer je wanneer je een geheel getal gebruikt in je datamodel, welke beperkingen en voordelen het heeft voor rapportage en workflows, en welke aanpassingen of uitbreidingen je kunt doen — van eenvoudige view-wijzigingen tot Python- en XML-customisaties. Ideaal voor functionele consultants en ontwikkelaars die integervelden efficiënt en foutloos willen inzetten binnen Odoo-implementaties.
6 maart 2026 in
Integer Field in Odoo: De Complete Gids
Dasolo
| Nog geen reacties

Introductie


Als je ooit een aantal eenheden op een verkooporder hebt ingevuld, het aantal open dagen van een taak hebt bijgehouden of een prioriteitsscore voor een lead hebt ingesteld, dan heb je met een Integer-veld in Odoo gewerkt. Het is één van de meest gebruikte veldtypes in Odoo en wordt vaak als vanzelfsprekend beschouwd, terwijl het bij verkeerde toepassing voor onverwachte problemen kan zorgen.


Weten hoe het Integer-veld precies werkt is nuttig voor gebruikers die formulieren aanpassen, ontwikkelaars die modules bouwen en consultants die datamodellen ontwerpen. Die kennis voorkomt technische schulden en zorgt dat het systeem doet wat de business verwacht.


Deze handleiding legt uit wat voor soort gegevens het Integer-veld opslaat, hoe het zich gedraagt binnen het Odoo-framework en de gebruikersinterface, hoe je het toevoegt of aanpast met Studio of via Python, en welke praktische toepassingen en aandachtspunten er zijn.

Wat is het Integer-veld in Odoo


Binnen de Odoo ORM is een Integer-veld bedoeld voor gehele getallen zonder komma: geen decimalen, geen fracties. In de database komt dit overeen met een INTEGER-kolom in PostgreSQL, een 4-byte signed type met een bereik dat grofweg van -2 miljard tot +2 miljard loopt.


Voor eindgebruikers verschijnt een Integer-veld als een eenvoudige numerieke invoer in formulieren en als een getallenkolom in lijstweergaven. Het is geschikt voor alles wat je per hele eenheden telt: aantallen stuks, scores, duur in dagen, volgordes of elke metriek waarbij halve eenheden geen betekenis hebben.


Een typische definitie in Python ziet er technisch simpel uit en hoort thuis in een modelklasse.

from odoo import fields, models

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

    estimated_hours = fields.Integer(
        string='Estimated Hours',
        default=0,
    )

Het argument string bepaalt de zichtbare labeltekst in de interface; default vult automatisch een startwaarde in bij het aanmaken van nieuwe records.


In Odoo Studio vind je dit veldtype onder de naam Integer. Velden die je via Studio aanmaakt krijgen automatisch een x_studio_-prefi x in de technische naam; bij Python-ontwikkeling kies je zelf een betekenisvolle naam.

Hoe het veld werkt


Wanneer je een Integer-veld definieert, zorgt Odoo er tijdens installatie of update van het modulepakket automatisch voor dat de bijbehorende databasekolom wordt aangemaakt. Handmatige SQL-migraties zijn hiervoor meestal niet nodig.


Op databaseniveau is de kolom van het type INTEGER. De ORM zorgt voor conversie tussen gebruikersinvoer en Python-typen; lege Integer-velden leveren in Odoo een 0 op in plaats van None of False. Dat onderscheid is belangrijk in logica die controleert op het ontbreken van een waarde.


Belangrijke veldattributen

De volgende eigenschappen zijn het vaakst relevant bij het configureren van een Integer-veld:

  • string: Het label dat gebruikers in de interface zien.
  • default: De standaardwaarde die nieuwe records krijgen; als je niets instelt is dat doorgaans 0.
  • required: Maakt het veld verplicht. Omdat het standaard 0 is, gebruik je deze optie vooral als je opslaan wilt blokkeren bij een nulwaarde.
  • readonly: Maakt het veld alleen-lezen in de UI, zodat gebruikers het niet kunnen aanpassen.
  • index: Plaatst een PostgreSQL-index op de kolom om filters en zoekopdrachten sneller te maken.
  • compute: Verbindt een Python-methode die de waarde berekent op basis van andere velden.
  • store: In combinatie met compute bepaalt dit of de berekende waarde in de database bewaard wordt of telkens opnieuw berekend moet worden.
  • copy: Bepaalt of de waarde meegaat bij dupliceren van een record.
  • groups: Beperkt zichtbaarheid tot specifieke gebruikersgroepen.

Weergave in views

In formulierweergaven toont Odoo een numeriek invoerveld. Bij grotere getallen worden visuale scheidingen (zoals duizendtallen) automatisch toegepast voor betere leesbaarheid.


In lijstweergaven verschijnen Integer-waarden als gewone, rechts uitgelijnde nummers. In zoekfilters kun je gebruikmaken van 'is gelijk aan', 'groter dan' en 'kleiner dan'-operatoren.


Je kunt widgets koppelen om de presentatie aan te passen. Denk aan een priority-widget die klikbare sterren maakt, of een progressbar-widget die een Integer als voortgangsbalk toont wanneer je een maximum definieert.


Interactie met de Odoo ORM

Voor ontwikkelaars is het lezen en schrijven van Integer-velden eenvoudig: in Python krijg je altijd een int terug. Omdat lege velden 0 teruggeven, moet je voorzichtig zijn met controles op 'ontbrekende' waarden — nul en 'niet ingevuld' zijn indistinguishable tenzij je die situatie specifiek adresseert.


Integer-velden werken soepel in berekende velden en in domeinen die gebruikt worden in views, serveracties en geautomatiseerde acties doorheen Odoo.

Praktische bedrijfsvoorbeelden


Waar je Integer-velden vaak ziet


1. CRM: lead scoring

Verkoopteams willen leads prioriteren op basis van een score. Een custom Integer-veld 'Lead Score' op opportunities laat verkopers handmatig scoren of laat een automatische regel de score berekenen op basis van factoren zoals bedrijfsgrootte, budget of interacties.

Zo kun je de pijplijn sorteren op relevantie en focus leggen op de meest kansrijke leads.


2. Sales: minimum bestelhoeveelheden

In verkoop en voorraadbeheer worden Integer-velden gebruikt voor minimumaantallen op producten of prijslijsten. Een minimuminstelling van 10 stuks voorkomt dat klanten orders onder die grens plaatsen en reduceert nadien communicatie over te kleine bestellingen.


3. Voorraad: herbestelregels

Herbestelregels vertrouwen op Integer-velden voor minimum- en maximumhoeveelheden. Daalt de voorraad onder de minimumwaarde, dan triggert Odoo automatisch een aanvulorder tot aan de ingestelde maximumwaarde. Juiste instellingen vermijden zowel out-of-stock als overstock.


4. Projectmanagement: story points en schattingen

Teams die Odoo Project voor agile gebruiken voegen vaak een Integer-veld toe voor story points of geschatte uren. Dat veld verschijnt op taken in kanban of lijsten en helpt bij capaciteit- en velociteitsplanning per sprint.


5. Boekhouding: betalingstermijnen in dagen

In Accounting worden Integer-velden gebruikt om het aantal dagen voor betaling in te stellen — bijvoorbeeld netto 30 of 60 dagen. Deze waarden voeren rechtstreeks door in de berekening van vervaldatums en zijn dus belangrijk voor cashflowbeheer.

Een Integer-veld aanmaken of aanpassen


Manieren om een Integer-veld toe te voegen


Er zijn twee gangbare methoden: geen-code via Odoo Studio of technische definitie in Python voor volledige controle.

Werken met Odoo Studio

  1. Studio is de ingebouwde no-code/low-code tool voor snel aanpassen van velden en views. Stappen om een Integer-veld toe te voegen via Studio:
  2. Open het formulier waar je het veld wilt plaatsen.
  3. Activeer Studio via het menu rechtsboven.
  4. Sleep in de veldenlijst links het Integer-type naar het formulier.
  5. Geef een label, kies of het verplicht is en stel eventueel een standaardwaarde in.

Sla op en sluit Studio af.


Studio legt het veld technisch vast met een x_studio_-prefix en slaat de definitie op in ir.model.fields; het veld is meteen beschikbaar in formulieren en lijsten.

Definiëren via Python (technische aanpassing)


Voor ontwikkelaars die een module bouwen definieer je het veld in een modelklasse. Voorbeeld:

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 from 0 to 100 used to prioritize opportunities', ) Na het toevoegen van deze code update je de module (bijv. odoo-bin -u your_module) zodat de kolom in de database wordt aangemaakt.


Aanmaken via XML-RPC API

Je kunt velden ook op afstand aanmaken met de XML-RPC API — handig voor geautomatiseerde deployments of wanneer je geen directe servertoegang hebt.


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

De ttype voor Integer-velden is 'integer' en state moet op 'manual' staan om aan te geven dat het een custom veld is en niet door een module wordt beheerd.


Computed Integer-velden toevoegen

Berekende Integer-velden zijn handig om automatisch waarden te laten afleiden, bijvoorbeeld het aantal open taken per project.


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

    open_task_count = fields.Integer(
        string='Open Tasks',
        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),
            ])

Met store=True wordt de berekende waarde in de database opgeslagen, waardoor je er op kunt filteren en sorteren zonder dat Odoo telkens opnieuw rekent.

Aanbevolen werkwijzen


Praktische tips voor het gebruik van Integer-velden


Gebruik Integer voor tellingen en hele eenheden

Kies Integer als het getal altijd een geheel moet zijn en decimalen geen betekenis hebben. Voor geld, meetwaarden of fracties gebruik je respectievelijk Monetary of Float.


Kies een verstandige standaardwaarde

Integer-velden standaarden naar 0; bedenk of 0 ook daadwerkelijk een betekenisvolle startwaarde is. Als 0 iets anders betekent dan 'niet ingesteld', overweeg dan aanvullende velden of logica om dat onderscheid vast te leggen.


Voeg een index toe als je vaak filtert op het veld

Als je vaak op een Integer-veld filtert, sort of groepeert, zet index=True om een databas index te creëren. Dat versnelt zoekopdrachten op grote datasets; de trade-off is een kleine opslag- en schrijftijdtoename, maar die is meestal de moeite waard.


Gebruik store=True voor berekende velden die je wilt filteren

Als je een computed Integer definieert en gebruikers moeten erop kunnen filteren of groeperen, stel dan altijd store=True in. Zonder opslag werkt de veldwaarde niet in domeinen en groepsfuncties.


Documenteer geldige bereiken

Als een veld een specifiek bereik heeft—bijvoorbeeld een score tussen 0 en 100—zet die informatie in help zodat gebruikers weten welke waarden verwacht worden en fouten vermeden worden.


Gebruik geen Integer als vervanging voor relaties

Als je naar een ander record wilt verwijzen, gebruik altijd een Many2one in plaats van een raw ID in een Integer-veld. Many2one levert navigatie, cascading en ORM-integratie; een integer met een ID is fragiel en omzeilt het framework.

Veelvoorkomende valkuilen


Meest gemaakte fouten met Integer-velden


Integer verwarren met Float

Een veelgemaakte fout is Integer gebruiken waar Float nodig is. Als gebruikers ooit 1,5 of 0,25 moeten invoeren, truncates Odoo de decimalen stilletjes wat tot dataverlies leidt. Gebruik Float voor fracties en Monetary voor geldbedragen.


Aanname dat nul 'leeg' betekent

Omdat lege Integer-velden 0 teruggeven, kun je niet onderscheiden of een waarde nooit ingevuld werd of dat iemand bewust 0 invoerde. Als die scheiding belangrijk is, voeg dan een Boolean toe (bijv. has_score) of gebruik een veldtype dat None/False als lege waarde ondersteunt.


Geen index toevoegen op veelgebruikte filtervelden

Velden die later als filter worden gebruikt hebben baat bij index=True. Het vergeten hiervan kan leiden tot trage lijstweergaven op grotere databases; beter is het van bij de start te bepalen welke velden geïndexeerd moeten worden.


Integer gebruiken voor decimale verhoudingen

Soms slaan ontwikkelaars percentages op als integers (bijv. 75 voor 75%). Dat werkt tot je een waarde als 72.5% nodig hebt. Als er kans is op decimalen, kies dan meteen voor Float.


store=True vergeten bij computed velden die in filters worden gebruikt

Een berekend Integer-veld zonder store=True kun je niet gebruiken in domeinen, geautomatiseerde acties of group-by. Dit is een veelvoorkomende bron van verwarring tijdens ontwikkeling; denk na over gebruiksscenario's voor je beslist.

Afsluiting


Samenvattend: het Integer-veld is een klein maar fundamenteel onderdeel van het Odoo-datamodel. Het lijkt eenvoudig, en vaak is het dat ook. Toch zijn er specifieke eigenschappen — zoals lege velden die 0 teruggeven en het belang van store=True voor filters — die je vroeg moet begrijpen om latere problemen te voorkomen.


Of je nu Odoo configureert voor een verkoopteam, een module bouwt of herbestelregels voor een magazijn ontwerpt: Integer-velden komen overal voor. Kennis van hun gedrag, hoe je ze via Studio of Python maakt en wanneer je beter Float of Monetary gebruikt, maakt je implementatie betrouwbaarder en makkelijker te onderhouden.


Als je aan een Odoo-aanpassing werkt en zeker wilt zijn dat je datamodel meteen goed is opgezet, betaalt die basiskennis zich uit tijdens de hele levensduur van het project.

Werk samen met een Odoo-specialist


Bij Dasolo ondersteunen we bedrijven met implementatie, maatwerk en optimalisatie van Odoo in verschillende sectoren. Of het nu gaat om een helder datamodel, custom velden en workflows of koppelingen naar externe systemen via de API, wij hebben de ervaring om het meteen goed te doen.


Heb je vragen over je Odoo-configuratie of wil je een project bespreken, neem dan contact op met ons team— we helpen je met plezier verder.

Integer Field in Odoo: De Complete Gids
Dasolo 6 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten