Overslaan naar inhoud

Afbeeldingsveld in Odoo: De Ultieme Gids

Een praktische gids voor het afbeeldingsveld in het Odoo-datamodel, van basisgebruik tot technische aanpassing en beste praktijken
6 maart 2026 in
Afbeeldingsveld in Odoo: De Ultieme Gids
Dasolo
| Nog geen reacties

Inleiding


Als u ooit een productfoto heeft geüpload, een bedrijfslogo heeft ingesteld of een profielfoto aan een werknemersrecord in Odoo heeft toegevoegd, heeft u al interactie gehad met een Afbeeldingsveld. Het is een van de meest visuele veldtypes in het Odoo-datamodel en het verschijnt op meer plaatsen dan de meeste gebruikers zich realiseren.


Voor zakelijke gebruikers werkt het meestal gewoon. U klikt op een knop, uploadt een bestand en de afbeelding verschijnt op het record. Maar voor consultants en ontwikkelaars die Odoo configureren, gebeurt er behoorlijk wat onder de motorkap. Het Afbeeldingsveld heeft zijn eigen opslagmechanisme, automatische wijzigingsgrootte en enkele nuances die het waard zijn om te begrijpen voordat u begint met het toevoegen van afbeeldingsvelden aan aangepaste modellen.


Deze gids behandelt wat het Afbeeldingsveld opslaat, hoe het zich gedraagt in het Odoo-framework, hoe u het kunt toevoegen met Odoo Studio of Python, en praktische voorbeelden uit echte zakelijke workflows.

Wat is het Afbeeldingsveld in Odoo


Het afbeeldingsveld is een speciaal veldtype in de Odoo ORM, geïntroduceerd als fields.Image in Odoo 13. Voor die versie gebruikten ontwikkelaars een fields.Binary veld in combinatie met de image widget om hetzelfde resultaat te bereiken. Tegenwoordig beheert het afbeeldingsveldtype de volledige levenscyclus van afbeeldingsopslag, inclusief automatische resizing, zelfstandig.


Onder de motorkap slaat het afbeeldingsveld binaire gegevens op die in base64 zijn gecodeerd. In de PostgreSQL-database worden deze gegevens opgeslagen als een bytea-kolom of, vaker in moderne Odoo-versies, als een bestandsbijlage die aan het record is gekoppeld. Deze bijlage-gebaseerde opslag houdt de belangrijkste databasetabellen lichter en stelt Odoo in staat om afbeeldingen efficiënt te serveren via zijn bijlage-URL-systeem.


Hoe het eruitziet in de interface

In een formulierweergave wordt een afbeeldingsveld weergegeven als een klikbare afbeeldingsplaceholder. Gebruikers kunnen een bestand rechtstreeks van hun computer uploaden, en in sommige gevallen kunnen ze ook een URL plakken. Het veld toont een miniatuurvoorbeeld direct op het formulier, wat het gemakkelijk maakt om het in één oogopslag te herkennen.


In lijstweergaven worden afbeeldingsvelden zelden weergegeven omdat miniaturen in lijsten de laadtijd kunnen vertragen. Ze kunnen echter worden weergegeven in kanban-weergaven, waar kleine kaartgebaseerde lay-outs profiteren van visuele indicatoren zoals productfoto's of contactavatars.


Odoo veldtypes: Afbeelding vs Binaire

Het is de moeite waard om het onderscheid tussen de twee te kennen. Een binaire veld slaat elk bestandstype op: PDF's, spreadsheets, zip-bestanden, enzovoort. Het afbeeldingsveld is specifiek ontworpen voor afbeeldingsbestanden. Het past automatische resizing toe bij het opslaan, handhaaft afbeeldingsspecifieke validatie en wordt standaard correct weergegeven met de afbeeldingswidget. Als je niet-afbeeldingsbestanden opslaat, gebruik dan Binaire. Als je foto's of logo's opslaat, gebruik dan Afbeelding.

Hoe het Veld Werkt


Wanneer een gebruiker een afbeelding uploadt naar een afbeeldingsveld, slaat Odoo het niet simpelweg op als het ruwe bestand. Het verwerkt de afbeelding eerst.


Automatische resizing

De fields.Image declaratie accepteert max_width en max_height parameters. Als de geüploade afbeelding deze afmetingen overschrijdt, past Odoo automatisch resizing toe terwijl de beeldverhouding behouden blijft. Dit gebeurt transparant bij het opslaan, zodat gebruikers er nooit over hoeven na te denken.

De standaard maximale grootte voor een standaard afbeeldingsveld is 1920 pixels aan de langste zijde. Dit is de reden waarom het veld vaak image_1920 wordt genoemd in standaard Odoo-modellen zoals product.template of res.partner.


Afbeeldingsgroottevarianten

Bij ingebouwde Odoo-modellen zie je vaak een patroon van gerelateerde afbeeldingsvelden naast het hoofdveld: image_1920, image_1024, image_512, image_256 en image_128. Dit zijn aparte fields.Image velden die zijn gedefinieerd als gerelateerde velden die terugwijzen naar de primaire afbeelding, elk met verschillende groottebeperkingen.


Deze aanpak stelt Odoo in staat om de juiste afbeeldingsgrootte te serveren, afhankelijk van de context. Een productlijstpagina haalt de kleine image_128 miniatuur op om de laadtijden van de pagina snel te houden. Een productdetailpagina haalt de volledige image_1920 op voor een scherpere weergave. Voor aangepaste modellen heb je mogelijk dit multi-groottepatroon nodig, afhankelijk van hoe en waar de afbeelding wordt weergegeven.


Opslag als bijlagen

Standaard slaan afbeeldingsvelden hun gegevens op als Odoo-bestandsbijlagen. Dit betekent dat de binaire inhoud zich in het ir.attachment model bevindt in plaats van direct in de recordtabel. De record houdt een verwijzing naar de bijlage.


Praktisch gezien houdt dit de belangrijkste databasetabellen slank. Het betekent ook dat afbeeldingen toegankelijk zijn via voorspelbare URL's zoals /web/image/product.template/42/image_1920, wat het patroon is dat wordt gebruikt in webpagina's, e-mailtemplates en API-responses.


Toegangscontrole

Afbeeldingsvelden respecteren dezelfde toegangsregels als de rest van de record. Als een gebruiker geen leesrechten heeft voor een product, kan hij ook de afbeelding niet ophalen. Dit wordt automatisch afgehandeld door de Odoo-beveiligingslaag, wat iets is om te weten bij het bouwen van klantgerichte portals of openbare webpagina's.

Zakelijke Gebruikscases


Het afbeeldingsveld verschijnt in bijna elke Odoo-module. Hier zijn enkele van de meest voorkomende toepassingen in de praktijk.


1. Productcatalogus (Verkoop en Voorraad)

Productafbeeldingen zijn waarschijnlijk het meest zichtbare gebruik van afbeeldingsvelden in Odoo. Elke producttemplate heeft een image_1920 veld, en die afbeeldingen verschijnen in de webshop, op PDF's van verkooporders, in kassaschermen en bij pickingoperaties op mobiele apparaten.

Bedrijven met grote catalogi gebruiken vaak de API om productafbeeldingen in bulk te uploaden in plaats van ze één voor één via de interface toe te voegen. Het afbeeldingsveld accepteert base64-gecodeerde binaire gegevens, dus het is eenvoudig om afbeeldingen programmatig te uploaden via XML-RPC of JSON-RPC.


2. Klant- en leverancierslogo's (CRM en Inkoop)

Het res.partner model heeft een afbeeldingsveld dat wordt gebruikt voor contactfoto's en bedrijfslogo's. Deze afbeelding verschijnt in het partnerformulier, in het chattergebied en in CRM kanban-kaarten. Voor verkoopteams die met veel accounts werken, maakt het hebben van logo's op contactrecords het gemakkelijker om visueel door de klantenlijst te navigeren.


3. Werknemersfoto's (HR)

Het hr.employee model slaat een werknemersfoto op in een afbeeldingsveld. Deze foto verschijnt in de werknemersdirectory, op loonstroken in sommige configuraties, en in de Odoo Discuss-module naast berichten. HR-teams laden deze foto's vaak wanneer ze een grote groep nieuwe werknemers onboarden, opnieuw met behulp van bulkimport of de API.


4. Foto's van apparatuur en activa (Onderhoud)

De onderhoudsmodule staat het bijvoegen van een afbeelding aan apparatuurrecords toe. Fieldtechnici vinden het nuttig om een foto van de machine direct op de onderhoudsorder te hebben, zodat ze snel kunnen bevestigen dat ze aan het juiste stuk apparatuur werken voordat ze met een reparatie beginnen.


5. Aangepaste inspectie- of kwaliteitsformulieren

Sommige bedrijven bouwen aangepaste modellen in Odoo voor kwaliteitscontroles, site-inspecties of leveringsbevestigingen. Het toevoegen van een afbeeldingsveld aan deze modellen stelt fieldmedewerkers in staat om een foto als bewijs direct op het record bij te voegen. Dit is een veelvoorkomend Odoo-aanpassingspatroon en werkt goed, of het veld nu wordt toegevoegd via Odoo Studio of rechtstreeks in Python-code.

Het Veld Aanmaken of Aanpassen


Er zijn twee hoofdmanieren om een afbeeldingsveld aan een Odoo-model toe te voegen: via Odoo Studio zonder code te schrijven, of via Python-ontwikkeling voor meer controle.


Odoo Studio gebruiken

Odoo Studio is de ingebouwde no-code aanpassingstool. Om een afbeeldingsveld toe te voegen met Studio, open je de relevante app, activeer je Studio vanuit het bovenste menu en navigeer je naar de formulierweergave waar je het veld wilt laten verschijnen.


In het veldpaneel aan de linkerkant sleep je een afbeeldingsveld naar het formulier. Studio vraagt je om een label op te geven en zal automatisch het onderliggende veld op het model aanmaken. Dit is de aanbevolen aanpak voor zakelijke gebruikers en functionele consultants die velden in Odoo willen creëren zonder een ontwikkelaar erbij te betrekken.

Velden die via Studio zijn aangemaakt, worden bij conventie voorafgegaan door x_studio_, bijvoorbeeld x_studio_site_photo. Ze gedragen zich precies zoals native afbeeldingsvelden wat betreft opslag en weergave.


Gebruik Python (Odoo-ontwikkeling)

Voor technische aanpassingen definieer je afbeeldingsvelden rechtstreeks in een Python-modelbestand. Hier is een basisvoorbeeld van hoe een ontwikkelaar een afbeeldingsveld aan een aangepast model zou toevoegen:


from odoo import models, fields

class SiteInspection(models.Model):
    _name = 'site.inspection'
    _description = 'Site Inspection'

    name = fields.Char(string='Referentie', required=True)
    photo = fields.Image(
        string='Site Foto',
        max_width=1920,
        max_height=1920,
    )
    photo_128 = fields.Image(
        related='photo',
        max_width=128,
        max_height=128,
        store=True,
        string='Thumbnail',
    )

De max_width en max_height parameters vertellen Odoo om de opgeslagen grootte te beperken tot 1920 pixels. Het tweede veld, photo_128, is een gerelateerd veld dat een kleinere versie opslaat voor gebruik in kanban-kaarten of lijstweergaven. Dit is het standaard Odoo-ontwikkelingspatroon voor het omgaan met meerdere afbeeldingsgroottes op een enkel record.


Het veld aan een weergave toevoegen

Zodra het veld op het model bestaat, moet het aan een weergave worden toegevoegd om zichtbaar te zijn in de interface. In een formulierweergave XML toon je een afbeeldingsveld met behulp van de widget="image" attribuut:

<field name="photo" widget="image" class="oe_avatar"/>

De oe_avatar klasse positioneert het als een cirkelvormig avatar in de linkerbovenhoek van het formulier, wat de standaard Odoo-stijl is. Je kunt het ook zonder de klasse gebruiken om het inline binnen een formulierlay-out te plaatsen.

Beste Praktijken


Hier zijn de aanbevelingen die we aan klanten geven bij het werken met afbeeldingsvelden in Odoo.


Stel realistische groottebeperkingen in

De standaardlimiet van 1920 pixels is geschikt voor de meeste gebruikssituaties. Vermijd het verhogen ervan, tenzij je een sterke reden hebt, zoals zeer hoge resolutie productfotografie voor drukwerk. Grotere afbeeldingen betekenen grotere bijlagen, wat invloed heeft op de grootte van de database en de laadtijd van de pagina.


Maak een thumbnailvariant voor lijsten en kanban

Als je de afbeelding in lijstweergaven of kanban-kaarten weergeeft, definieer dan een apart gerelateerd veld voor kleine formaten dat is beperkt tot 128 of 256 pixels. Het ophalen van een thumbnail van 128 pixels is veel sneller dan het laden van de volledige afbeelding van 1920 pixels voor elke kaart op het scherm.


Gebruik de API voor bulkafbeeldingen uploads

Wanneer je afbeeldingen voor honderden of duizenden records moet laden, doe dit dan niet handmatig via de interface. Gebruik de Odoo XML-RPC of JSON-RPC API om base64-gecodeerde afbeeldingsgegevens rechtstreeks naar het veld te schrijven. Dit is veel sneller en kan worden geautomatiseerd in een script. De Odoo ontwikkelaarsgids behandelt dit patroon goed.


Comprimeer afbeeldingen voordat je ze uploadt

Hoewel Odoo afbeeldingen automatisch verkleint, comprimeert het ze niet altijd agressief. Een JPEG van 5 MB die is verkleind tot 1920 pixels kan nog steeds enkele honderden kilobytes zijn. Het vooraf comprimeren van afbeeldingen voordat je ze uploadt houdt de bijlagegroottes beheersbaar, vooral bij het omgaan met grote productcatalogi.


Vermijd afbeeldingsvelden in vaak geraadpleegde lijstweergaven

Het opnemen van een afbeeldingsveld in een kolom van een lijstweergave dwingt Odoo om binaire gegevens voor elke zichtbare rij op te halen. Dit kan lijstweergaven merkbaar langzamer maken. Gebruik een kleine thumbnail als je echt een visueel element in een lijst nodig hebt, en houd de afbeelding in volledige grootte alleen voor de formulierweergave.


Veelvoorkomende Valkuilen


Dit zijn de fouten die we het vaakst zien wanneer teams beginnen te werken met afbeeldingsvelden in Odoo.


Verwarring tussen binaire en afbeeldingsvelden

Een binaire veld zonder de afbeeldingswidget wordt weergegeven als een downloadknop, niet als een afbeeldingsvoorbeeld. Als je een goede afbeeldingsweergave wilt, heb je ofwel een fields.Image veldtype nodig of een fields.Binary met widget="image" expliciet ingesteld in de weergave. Dit vergeten is een veelvoorkomende bron van verwarring, vooral bij het werken met oudere Odoo-versies.


Niet vroeg genoeg nadenken over afbeeldingsgroottevarianten

Een enkel groot afbeeldingsveld toevoegen is eenvoudig, maar als je later beseft dat je kleinere versies nodig hebt voor een kanban-weergave of een websitevermelding, vereist het toevoegen van die gerelateerde velden een database-migratie als je in een aangepast module zit. Het plannen van de groottevarianten van tevoren bespaart later hoofdpijn.


Afbeeldingen rechtstreeks opslaan in plaats van bijlagen te gebruiken

In zeer oude Odoo-versies of slecht geconfigureerde instanties, kon binaire data rechtstreeks in de databasekolom worden opgeslagen in plaats van als bijlagen. Dit vergroot de grootte van de hoofdtabellen aanzienlijk en vertraagt ongerelateerde queries. Zorg ervoor dat uw Odoo-instantie is geconfigureerd om bestandsopslag of S3-compatibele opslag voor bijlagen te gebruiken.


Afbeeldingsvelden gebruiken als documentopslag

Sommige gebruikers proberen gescande documenten of screenshots op te slaan in afbeeldingsvelden. Hoewel dit technisch mogelijk is, is het niet het juiste hulpmiddel. Voor documentbeheer, gebruik de Odoo Documenten-module of een binaire veld met een bestandsdownloadwidget. Afbeeldingsvelden zijn ontworpen voor foto's en logo's, niet voor het opslaan van meerpagina-documenten.


Vergeten toegangsregels op openbare pagina's

Als u afbeeldings-URL's op een openbare website of in een portal weergeeft en het onderliggende record niet toegankelijk is voor openbare gebruikers, zal de afbeelding een 404-fout retourneren. Bij het bouwen van webpagina's of klantportals, controleer altijd of de afbeeldings-URL toegankelijk is voor het verwachte publiek.

Conclusie


Het afbeeldingsveld is een van de eenvoudigste veldtypes om op het eerste gezicht te gebruiken, maar het heeft genoeg diepgang om teams te laten struikelen die niet vooruit plannen. Begrijpen hoe Odoo omgaat met het verkleinen, opslaan als bijlagen en het patroon van meerdere formaten zal u tijd besparen bij het bouwen of configureren van modellen die visuele gegevens nodig hebben.


Voor zakelijke gebruikers helpt het om te weten dat afbeeldingen veilig op het record zijn opgeslagen en toegankelijk zijn via voorspelbare URL's bij het opzetten van webpagina's of portalweergaven. Voor ontwikkelaars is de combinatie van fields.Image met gerelateerde miniatuurvelden de standaard Odoo-patroon, en het is de moeite waard om hier vroeg vertrouwd mee te raken.


Of u nu een productfoto aan uw catalogus toevoegt, een foto van een site-inspectie aan een aangepast model hecht, of een klantportal bouwt die contactlogo's weergeeft, het afbeeldingsveld biedt u een schone en geïntegreerde manier om visuele gegevens binnen het Odoo-datamodel te verwerken.

Hulp Nodig bij Uw Odoo Implementatie?


Bij Dasolo helpen we bedrijven Odoo te implementeren, aan te passen en te optimaliseren over alle modules en versies. Of u nu velden op standaardmodellen moet configureren, aangepaste modules vanaf nul moet bouwen, of gegevens van een legacy-systeem moet migreren, we werken hands-on met uw team om Odoo te laten draaien zoals uw bedrijf daadwerkelijk werkt.

Als u vragen heeft over uw Odoo-configuratie of wilt verkennen wat mogelijk is met het platform, neem contact met ons op. We zijn blij om te helpen.

Afbeeldingsveld in Odoo: De Ultieme Gids
Dasolo 6 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten