Skip to Content

Image Field i Odoo – Den Ultimative Guide

En praktisk guide til billedfeltet i Odoo: fra grundlæggende brug til teknisk tilpasning og anbefalede arbejdsgange. Denne artikel giver dig en håndgribelig indføring i, hvordan du håndterer billeder i Odoo — når du skal vise produktbilleder i frontenden, lagre og hente dem effektivt, optimere ydeevne og tilpasse feltet til specielle behov. Du får konkrete tips til filformater, billedstørrelser, lagring i database vs. filsystem, caching-strategier og sikkerhedshensyn, samt eksempler på, hvordan du udvider standardfeltet med automatiske thumbnails, billedvalidering og integrationer til tredjeparts lagertjenester. Artiklen er målrettet udviklere og systemansvarlige, men skrevet, så også projektledere og superbrugere kan følge med.
6. marts 2026 af
Image Field i Odoo – Den Ultimative Guide
Dasolo
| Ingen kommentarer endnu

Introduktion


Har du nogensinde lagt et produktfoto op, sat virksomhedens logo ind eller uploaded et medarbejderbillede i Odoo? Så har du arbejdet med et billedfelt. Det er et af de mest synlige felttyper i Odoo og dukker op på mange steder i systemet — ofte flere steder, end brugere først bemærker.


For slutbrugeren er det oftest enkelt: klik, vælg fil, og billedet vises. Men bag scenen sker der flere ting, som konsulenter og udviklere bør kende til. Billedfeltet har sin egen måde at gemme filer på, det ændrer størrelser automatisk, og der er små detaljekrav, som kan påvirke ydeevne og adgangskontrol, hvis man ikke tager højde for dem.


Denne guide forklarer hvad et billedfelt faktisk gemmer, hvordan Odoo håndterer det i rammeværket, hvordan du tilføjer det via Odoo Studio eller i Python, og viser praktiske eksempler fra typiske forretningsprocesser.

Hvad er billedfeltet i Odoo?


I Odoos ORM findes en dedikeret felttype til billeder — fields.Image — indført omkring Odoo 13. Før dengang brugte man ofte fields.Binary sammen med et image-widget for at opnå samme funktionalitet. I dag tager billedfeltet sig af hele billedlivscyklussen: validering, resize og visning.


Teknisk set gemmes billeddata som binær indkodet i base64. I PostgreSQL lagres indholdet enten i en bytea-kolonne eller, hyppigere i moderne installationer, som en fil i ir.attachment. Ved at placere billeder som vedhæftninger holdes de primære tabeller lettere, og Odoo kan levere billeder effektivt via vedhæftnings-URL'er.


Hvordan det ser ud i brugerfladen

I en formular vises billedfeltet som en klikbar billedpladsholder. Brugeren kan uploade direkte fra sin computer, og i nogle tilfælde indsætte en URL. Feltet viser et miniaturebillede i formularen, så man hurtigt kan identificere posten visuelt.


I listevisninger ses billeder sjældent, fordi miniaturebilleder kan gøre indlæsning langsommere. Til gengæld er de nyttige i kanban-visninger, hvor små kort med produktbilleder eller kontaktfotos giver hurtig visuel genkendelse.


Billedfelt vs. binært felt i Odoo

Det er vigtigt at skelne mellem Binary og Image. Binary kan gemme alle filtyper — PDF, Excel, arkiver osv. Image er specifikt designet til billedfiler: det validerer, ændrer størrelse ved gem og vises korrekt med image-widgetten. Gem dokumenter i Binary; gem fotos, logoer og avatarer i Image.

Hvordan feltet fungerer


Når en bruger uploader et billede til et Image-felt, gemmer Odoo ikke nødvendigvis den rå fil uændret. Systemet behandler billedet først.


Automatisk resizing

fields.Image kan få parametre som max_width og max_height. Overskrider billedets dimensioner disse grænser, skalerer Odoo det ned automatisk, mens billedforholdet bevares. Det sker transparent ved gem, så brugeren ikke behøver at bekymre sig om tekniske detaljer.

Standardgrænsen for et almindeligt billedfelt er typisk 1920 pixels på den længste side. Derfor hedder standardfelter ofte image_1920 i modeller som product.template og res.partner.


Forskellige billedstørrelser

I standardmodeller ser man ofte et sæt relaterede billedfelter: image_1920, image_1024, image_512, image_256 og image_128. De er relaterede fields.Image-felter, der peger tilbage på hovedbilledet med forskellige maksimumsdimensioner.


Med flere størrelser kan Odoo servere den mest hensigtsmæssige version per kontekst: små thumbnails til lister, større billeder til produktdetaljer. I egne modeller skal du vurdere, om du har brug for denne multi-størrelses-struktur ud fra hvor billedet vises.


Opbevaring som vedhæftninger

Som regel gemmes billedfelter som Odoo-vedhæftninger. Det betyder, at selve binære data ligger i ir.attachment frem for direkte i postens tabel, og posten indeholder et referencefelt til vedhæftningen.


Det gør databasen slankere og skaber forudsigelige URL-mønstre som /web/image/product.template/42/image_1920, som bruges i webshoppen, e-mailskabeloner og API-responser.


Adgangskontrol

Billeder følger de samme adgangsregler som resten af posten. Har en bruger ikke læseadgang til en produktpost, kan vedkommende heller ikke hente billedet — Odoos sikkerhedsmodel håndterer dette automatisk. Det er vigtigt at overveje, når man bygger offentlige websider eller kundeportaler.

Hvor virksomheder bruger billedfeltet


Billedfeltet bruges i næsten alle Odoo-moduler. Her er de mest almindelige anvendelser.


1. Produktkatalog (Salg og Lager)

Produktbilleder er nok den mest synlige brug. Hvert produkt har ofte et image_1920, som vises i webshoppen, på ordredokumenter, i POS og på mobile pluklister.

Virksomheder med store kataloger uploader ofte billeder i bulk via API i stedet for manuelt gennem UI. Billedfeltet tager base64-kodet binærdata, så programmatisk upload via XML-RPC eller JSON-RPC er lige til.


2. Kunde- og leverandørlogoer (CRM og Indkøb)

res.partner har billedfelter til kontaktfotos og firmalogoer. De vises i partnerformularen, i chatteren og i CRM-kanban. For salgsteams gør logoer det lettere at skimme gennem lange kundelister.


3. Medarbejderfotos (HR)

hr.employee gemmer medarbejderbilleder, som bruges i medarbejderlister, på lønsedler i visse opsætninger og i Discuss ved siden af beskeder. HR-afdelinger indlæser ofte fotos i stor skala ved onboarding via import eller API.


4. Udstyr og aktiver (Maintenance)

Maintenance-modulet tillader billeder på udstyrsposter. Teknikere på feltet får hurtig bekræftelse af, at de arbejder på den rette maskine, når et foto følger med vedligeholdelsesordren.


5. Inspektioner og kvalitetskontrol

Til særlige workflows opretter virksomheder ofte tilpassede modeller til tjeklister, inspektioner eller leveringsbekræftelser. Et billedfelt giver mulighed for at vedhæfte dokumentation direkte på posten — nyttigt i mobile arbejdsgange og almindelig praksis både via Studio og via kode.

Sådan opretter eller tilpasser du feltet


Der er to veje til at tilføje et billedfelt: uden kode via Odoo Studio, eller med kode i Python for større kontrol.


Brug af Odoo Studio

Odoo Studio er Odoos indbyggede no-code værktøj. For at tilføje et billedfelt åbner du den relevante app, slår Studio til og redigerer formularvisningen, hvor feltet skal stå.


I felt-panelet trækker du et Image-felt ind på formularen. Studio beder om en label og opretter feltet på modellen automatisk — en hurtig løsning for forretningsbrugere og funktionelle konsulenter uden udviklerindgriben.

Felter oprettet via Studio får typisk præfikset x_studio_, fx x_studio_site_photo, og opfører sig som native Image-felter med hensyn til opbevaring og visning.


Brug af Python (udvikling)

Tekniske tilpasninger laves direkte i en Python-model. Udviklere definerer billedfelter i kode for at styre parametre som max-dimensioner og relaterede thumbnails.


from odoo import models, fields

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

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

Eksemplet viser standardmønstret: et hovedbillede med 1920-pixel loft og et relateret lille billede til miniaturer. Det er den anbefalede måde at håndtere flere billedstørrelser i en model.


Tilføjelse af feltet til en visning

Når feltet findes på modellen, skal du placere det i en view-definition for at gøre det synligt i UI. I XML bruger man image-widgetten til korrekt rendering.

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

Klassen oe_avatar giver det et cirkulært avatar-udseende i øverste venstre hjørne af formularen. Du kan naturligvis bruge feltet inline uden avatar-klassen, hvis designet kræver det.

Gode fremgangsmåder


Anbefalinger til kunder og implementeringsteam


Sæt realistiske størrelsesgrænser

1920-pixel-standarden passer til de fleste behov. Forøg kun grænsen, hvis du har et konkret krav til ekstremt høj opløsning, f.eks. tryk. Større billeder betyder større vedhæftninger, større database og langsommere sideindlæsning.


Opret thumbnails til lister og kanban

Hvis billeder skal vises i lister eller kanban, lav en lille relateret variant på 128 eller 256 px. Hentning af en 128-pixel thumbnail er langt hurtigere end at hente originalen for hver kort.


Brug API til masse-upload

Når du skal indlæse billeder til hundreder eller tusinder af poster, brug XML-RPC eller JSON-RPC i stedet for manuel upload. Send base64-kodet billeddata direkte via API og automatiser processen med scripts.


Komprimer billeder før upload

Selvom Odoo skalerer billeder, komprimerer det ikke altid aggressivt. Et stort JPEG, der skaleres til 1920 px, kan stadig fylde flere hundrede KB. Forudkomprimering holder vedhæftningsstørrelser nede — især vigtigt i store produktkataloger.


Undgå store billeder i ofte forespurgte listevisninger

Et billedfelt i en listekolonne tvinger Odoo til at hente binære data for hver række, hvilket kan gøre lister langsommere. Brug en lille thumbnail i lister og behold fuld størrelse i formularvisningen.


Almindelige fejltrin


De typiske fejl vi ser i projekter


Forveksling mellem Binary og Image

Et Binary-felt uden image-widget vises som en downloadknap, ikke et billede. For korrekt preview skal du bruge fields.Image eller et fields.Binary med widget="image" i viewet. Det skaber ofte forvirring i ældre opsætninger.


Mangel på plan for billedvarianter fra starten

Det er nemt at tilføje et stort billedfelt, men hvis du senere får brug for thumbnails, kræver det ofte migration i et custom modul. Planlæg varianter på forhånd for at undgå ekstra arbejde.


At gemme billeder direkte i tabellen i stedet for som vedhæftninger

I gamle eller dårligt konfigurerede installationer kan binærdata ende direkte i records-tabellen, hvilket oppuster hovedtabellerne og gør forespørgsler langsommere. Sørg for at bruge attachment-lagring eller S3-kompatibelt lager, hvis muligt.


Brug af Image-felter til dokumentopbevaring

Nogle gemmer skannede dokumenter i billedfelter. Det kan fungere, men det er ikke optimalt. Brug Dokumenter-modulet eller et Binary-felt til flersidede filer — Image-felter er tiltænkt fotos og logoer.


At glemme adgangsregler på offentlige sider

Viser du billed-URL'er offentligt, men er posterne ikke offentligt læsbare, vil billedet returnere 404. Tjek altid, at adgangsreglerne stemmer overens med, hvem der skal se billedet på en hjemmeside eller i en portal.

Konklusion


Billedfeltet virker enkelt ved første øjekast, men hvis man ikke planlægger storage, resizing og thumbnail-strategi, kan det føre til performance-problemer. Kend Odoos måde at håndtere vedhæftninger og multi-størrelses-patterns, så du slipper for unødvendigt arbejde senere.


For forretningsbrugere betyder det tryghed at vide, at billeder ligger sikkert og kan tilgås via forudsigelige URL'er. For udviklere er kombinationen af fields.Image og relaterede thumbnails et standardmønster, man bør være fortrolig med tidligt i projektet.


Uanset om du tilføjer et produktfoto i webshoppen, vedhæfter et inspektionsfoto til en tilpasset post eller bygger en portal, der viser kundelogos, giver billedfeltet i Odoo en integreret og enkel måde at håndtere visuelt indhold på i datamodelen.

Brug for hjælp til din Odoo-implementering?


Hos Dasolo hjælper vi virksomheder med at implementere, tilpasse og optimere Odoo på tværs af moduler og versioner. Vi arbejder praktisk med dit team — fra feltkonfiguration på standardmodeller til udvikling af custom-moduler og migration af legacy-data — så Odoo matcher jeres forretningsprocesser.

Har du spørgsmål til din Odoo-opsætning eller vil du høre mere om mulighederne på platformen, kontakt os. Vi hjælper gerne.

Image Field i Odoo – Den Ultimative Guide
Dasolo 6. marts 2026
Del dette indlæg
Log ind for at skrive en kommentar