Hoppa till innehåll

Bildfält i Odoo: Den Kompletta Guiden

En praktisk guide till bildfältet i Odoo-datamodellen, från grundläggande användning till teknisk anpassning och bästa praxis
6 mars 2026 av
Bildfält i Odoo: Den Kompletta Guiden
Dasolo
| Inga kommentarer ännu

Introduktion


Om du någonsin har laddat upp en produktbild, ställt in en företagslogotyp eller bifogat en profilbild till en anställds post i Odoo, har du redan interagerat med ett bildfält. Det är en av de mest visuella fälttyperna i Odoo-datamodellen, och det dyker upp på fler ställen än de flesta användare inser.


För affärsanvändare fungerar det mestadels bara. Du klickar på en knapp, laddar upp en fil, och bilden visas på posten. Men för konsulter och utvecklare som konfigurerar Odoo händer det ganska mycket under ytan. Bildfältet har sin egen lagringsmekanism, automatisk storleksändringsbeteende och några nyanser som är värda att förstå innan du börjar lägga till bildfält i anpassade modeller.


Denna guide täcker vad bildfältet lagrar, hur det beter sig i Odoo-ramverket, hur man lägger till det med Odoo Studio eller Python, och praktiska exempel från verkliga affärsarbetsflöden.

Vad är bildfältet i Odoo


Bildfältet är en dedikerad fälttyp i Odoo ORM, introducerad som fields.Image i Odoo 13. Innan den versionen använde utvecklare ett fields.Binary fält kombinerat med image widgeten för att uppnå samma resultat. Idag hanterar Bildfältstypen hela livscykeln för bildlagring, inklusive automatisk storleksändring, på egen hand.


Under huven lagrar Bildfältet binära data kodade i base64. I PostgreSQL-databasen sparas dessa data som en bytea-kolumn eller, mer vanligt i moderna Odoo-versioner, som en filbilaga kopplad till posten. Denna bilagelagring håller huvuddatabasens tabeller lättare och gör att Odoo kan leverera bilder effektivt via sitt bilage-URL-system.


Hur det ser ut i gränssnittet

I en formulärvy renderas ett Bildfält som en klickbar bildplats. Användare kan ladda upp en fil direkt från sin dator, och i vissa fall kan de också klistra in en URL. Fältet visar en miniatyrförhandsvisning direkt i formuläret, vilket gör det lätt att upptäcka vid en snabb blick.


I listvyer visas Bildfält sällan eftersom miniatyrer i listor kan sakta ner laddningen. De kan dock visas i kanban-vyer, där små kortbaserade layouter drar nytta av visuella indikatorer som produktbilder eller kontaktavatarer.


Odoo fälttyper: Bild vs Binär

Det är värt att känna till skillnaden mellan de två. Ett Binärt fält lagrar vilken filtyp som helst: PDF-filer, kalkylblad, zip-filer och så vidare. Bildfältet är specifikt utformat för bildfiler. Det tillämpar automatisk storleksändring vid sparande, upprätthåller bildspecifik validering och renderar korrekt med bildwidgeten som standard. Om du lagrar icke-bildfiler, använd Binär. Om du lagrar foton eller logotyper, använd Bild.

Hur fältet fungerar


När en användare laddar upp en bild till ett Bildfält lagrar Odoo inte bara den råa filen som den är. Den bearbetar bilden först.


Automatisk storleksändring

Deklarationen fields.Image accepterar parametrarna max_width och max_height. Om den uppladdade bilden överskrider dessa dimensioner, ändrar Odoo automatiskt storleken medan den bevarar bildens aspektförhållande. Detta sker transparent vid sparande, så användare behöver aldrig tänka på det.

Den maximala standardstorleken för ett standard Bildfält är 1920 pixlar på den längsta sidan. Det är därför fältet ofta kallas image_1920 på standard Odoo-modeller som product.template eller res.partner.


Bildstorleksvarianter

På inbyggda Odoo-modeller ser du ofta ett mönster av relaterade bildfält bredvid huvudfältet: image_1920, image_1024, image_512, image_256 och image_128. Dessa är separata fields.Image-fält som definieras som relaterade fält som pekar tillbaka till den primära bilden, var och en med olika storleksbegränsningar.


Denna metod låter Odoo servera rätt bildstorlek beroende på sammanhang. En produktlistningssida hämtar den lilla image_128-miniatyren för att hålla sidladdningarna snabba. En produkts detaljsida hämtar den fullständiga image_1920 för en skarpare visning. För anpassade modeller kan du behöva eller inte behöva detta mönster med flera storlekar beroende på hur och var bilden kommer att visas.


Lagring som bilagor

Som standard lagrar bildfält sina data som Odoo-filbilagor. Detta innebär att det binära innehållet finns i ir.attachment-modellen snarare än direkt i posttabellen. Posten håller en referens till bilagan.


Praktiskt sett håller detta huvuddatabas-tabellerna slanka. Det betyder också att bilder är tillgängliga via förutsägbara URL:er som /web/image/product.template/42/image_1920, vilket är mönstret som används på webbsidor, e-postmallar och API-svar.


Åtkomstkontroll

Bildfält respekterar samma åtkomstregler som resten av posten. Om en användare inte har läsbehörighet till en produkt kan de inte hämta dess bild heller. Detta hanteras automatiskt av Odoo:s säkerhetslager, vilket är något värt att veta när man bygger kundvända portaler eller offentliga webbsidor.

Affärsanvändningsfall


Bildfältet förekommer i nästan varje Odoo-modul. Här är några av de vanligaste verkliga tillämpningarna.


1. Produktkatalog (Försäljning och Lager)

Produktbilder är förmodligen den mest synliga användningen av bildfält i Odoo. Varje produktmall har ett image_1920-fält, och dessa bilder visas i webbutiken, på PDF:er för försäljningsorder, i kassaskärmar och i plockoperationer på mobila enheter.

Företag med stora kataloger använder ofta API:et för att bulk-ladda upp produktbilder istället för att lägga till dem en och en genom gränssnittet. Bildfältet accepterar base64-kodad binär data, så det är enkelt att ladda upp bilder programmässigt via XML-RPC eller JSON-RPC.


2. Kund- och leverantörslogotyper (CRM och Inköp)

Modellen res.partner har ett bildfält som används för kontaktfoton och företagslogotyper. Denna bild visas i partnerformuläret, i chattområdet och i CRM-kanban-kort. För försäljningsteam som arbetar med många konton gör logotyper på kontaktregister det lättare att visuellt navigera genom kundlistan.


3. Anställdas foton (HR)

Modellen hr.employee lagrar ett foto av en anställd i ett bildfält. Detta foto visas i anställdas katalog, på lönebesked i vissa konfigurationer och i Odoo Discuss-modulen bredvid meddelanden. HR-team laddar ofta upp dessa foton när de onboardar en stor mängd nya anställda, återigen med hjälp av massimport eller API.


4. Utrustnings- och tillgångsfoton (Underhåll)

Underhållsmodulen tillåter att bifoga en bild till utrustningsregister. Fälttekniker tycker att det är användbart att ha en bild av maskinen direkt på underhållsordern, så att de snabbt kan bekräfta att de arbetar med rätt utrustning innan de påbörjar en reparation.


5. Anpassade inspektions- eller kvalitetsformulär

Vissa företag bygger anpassade modeller i Odoo för kvalitetskontroller, platsinspektioner eller leveransbekräftelser. Att lägga till ett bildfält till dessa modeller gör att fältpersonal kan bifoga ett foto som bevis direkt på registret. Detta är ett vanligt anpassningsmönster i Odoo och fungerar bra oavsett om fältet läggs till genom Odoo Studio eller direkt i Python-kod.

Skapa eller anpassa fältet


Det finns två huvudsakliga sätt att lägga till ett bildfält till en Odoo-modell: genom Odoo Studio utan att skriva kod, eller genom Python-utveckling för mer kontroll.


Använda Odoo Studio

Odoo Studio är det inbyggda verktyget för anpassning utan kod. För att lägga till ett bildfält med hjälp av Studio, öppna den relevanta appen, aktivera Studio från toppmenyn och navigera till formulärvyn där du vill att fältet ska visas.


I fältpanelen till vänster, dra ett bildfält till formuläret. Studio kommer att be dig att ge det en etikett och kommer automatiskt att skapa det underliggande fältet på modellen. Detta är den rekommenderade metoden för affärsanvändare och funktionella konsulter som vill skapa fält i Odoo utan att involvera en utvecklare.

Fält som skapats genom Studio har som konvention prefixet x_studio_, till exempel x_studio_site_photo. De fungerar exakt som inbyggda bildfält när det gäller lagring och visning.


Använda Python (Odoo-utveckling)

För tekniska anpassningar definierar du bildfält direkt i en Python-modellfil. Här är ett grundläggande exempel på hur en utvecklare skulle lägga till ett bildfält i en anpassad modell:


from odoo import models, fields

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

    name = fields.Char(string='Referens', required=True)
    photo = fields.Image(
        string='Platsfoto',
        max_width=1920,
        max_height=1920,
    )
    photo_128 = fields.Image(
        related='photo',
        max_width=128,
        max_height=128,
        store=True,
        string='Miniatyr',
    )

Parametrarna max_width och max_height talar om för Odoo att begränsa den lagrade storleken till 1920 pixlar. Det andra fältet, photo_128, är ett relaterat fält som lagrar en mindre version för användning i kanban-kort eller listvyer. Detta är den standard Odoo-utvecklingsmönster för att hantera flera bildstorlekar på en enda post.


Lägga till fältet i en vy

När fältet finns på modellen måste det läggas till i en vy för att vara synligt i gränssnittet. I en formulärvy XML visar du ett bildfält med attributet widget="image":

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

Klassen oe_avatar placerar det som en cirkulär avatar i det övre vänstra hörnet av formuläret, vilket är den standard Odoo-stilen. Du kan också använda det utan klassen för att placera det inline inom en formulärlayout.

Bästa praxis


Här är rekommendationerna vi ger kunder när de arbetar med bildfält i Odoo.


Sätt realistiska storleksgränser

Den standard 1920-pixelgränsen är lämplig för de flesta användningsfall. Undvik att öka den om du inte har en stark anledning, som mycket högupplöst produktfotografi för tryck. Större bilder innebär större bilagor, vilket påverkar databasens storlek och sidladdningsprestanda.


Skapa en miniatyrvariant för listor och kanban

Om du visar bilden i listvyer eller kanban-kort, definiera ett separat fält för liten storlek som är begränsat till 128 eller 256 pixlar. Att hämta en 128-pixel tumnagel är mycket snabbare än att ladda den fulla 1920-pixel bilden för varje kort på skärmen.


Använd API:et för massuppladdningar av bilder

När du behöver ladda bilder för hundratals eller tusentals poster, gör det inte manuellt genom gränssnittet. Använd Odoo XML-RPC eller JSON-RPC API för att skriva base64-kodad bilddata direkt till fältet. Detta är mycket snabbare och kan automatiseras i ett skript. Odoo utvecklardokumentation täcker detta mönster väl.


Komprimera bilder innan uppladdning

Även om Odoo automatiskt ändrar storlek på bilder, komprimerar det dem inte alltid aggressivt. En 5 MB JPEG som ändras till 1920 pixlar kan fortfarande vara flera hundra kilobyte. Att förkomprimera bilder innan uppladdning håller bilagestorlekar hanterbara, särskilt när man hanterar stora produktkataloger.


Undvik bildfält i ofta frågade listvyer

Att inkludera ett bildfält i en listvy-kolumn tvingar Odoo att hämta binärdata för varje synlig rad. Detta kan göra listvyer märkbart långsammare. Använd en liten tumnagel om du verkligen behöver en visuell i en lista, och behåll den fullstora bilden för formulärvyn endast.


Vanliga fallgropar


Detta är de misstag vi ser oftast när team börjar arbeta med bildfält i Odoo.


Förvirra binära och bildfält

Ett binärt fält utan bildwidget kommer att renderas som en nedladdningsknapp, inte som en bildförhandsvisning. Om du vill ha en korrekt bildvisning behöver du antingen en fields.Image fälttyp eller en fields.Binary med widget="image" uttryckligen inställt i vyn. Att glömma detta är en vanlig källa till förvirring, särskilt när man arbetar med äldre Odoo-versioner.


Att inte tänka på bildstorleksvarianter tillräckligt tidigt

Att lägga till ett enda stort bildfält är enkelt, men om du senare inser att du behöver mindre versioner för en kanbanvy eller en webbplatslista, kräver tillägg av dessa relaterade fält en databas-migrering om du är i en anpassad modul. Att planera storleksvarianterna i förväg sparar huvudvärk senare.


Lagra bilder direkt istället för att använda bilagor

I mycket gamla Odoo-versioner eller dåligt konfigurerade instanser kunde binärdata lagras direkt i databasens kolumn istället för som bilagor. Detta ökar storleken på huvudtabellerna avsevärt och saktar ner orelaterade frågor. Se till att din Odoo-instans är konfigurerad för att använda fillagring eller S3-kompatibel lagring för bilagor.


Använda bildfält som dokumentlagring

Vissa användare försöker lagra skannade dokument eller skärmdumpar i bildfält. Även om det tekniskt är möjligt, är det inte rätt verktyg. För dokumenthantering, använd Odoo Documents-modulen eller ett binärt fält med en filnedladdningswidget. Bildfält är designade för foton och logotyper, inte för att lagra flersidiga dokument.


Glömma åtkomstregler på offentliga sidor

Om du visar bild-URL:er på en offentlig webbplats eller i en portal och den underliggande posten inte är tillgänglig för offentliga användare, kommer bilden att returnera ett 404-fel. När du bygger webbplats sidor eller kundportaler, kontrollera alltid att bild-URL:en är tillgänglig för den förväntade publiken.

Slutsats


Bildfältet är en av de enklaste fälttyperna att använda på ytan, men det har tillräckligt med djup för att snubbla upp team som inte planerar i förväg. Att förstå hur Odoo hanterar omformatering, lagring som bilagor och mönstret för flera storlekar kommer att spara tid när du bygger eller konfigurerar modeller som behöver visuell data.


För affärsanvändare hjälper det att veta att bilder lagras säkert på posten och är tillgängliga genom förutsägbara URL:er när man sätter upp webbplats sidor eller portalvyer. För utvecklare är kombinationen av fields.Image med relaterade miniatyrfält den standard Odoo-mönstret, och det är värt att bli bekväm med tidigt.


Oavsett om du lägger till en produktbild i din katalog, bifogar en platsinspektionsbild till en anpassad modell, eller bygger en kundportal som visar kontaktlogotyper, ger bildfältet dig ett rent och integrerat sätt att hantera visuell data inom Odoo-datamodellen.

Behöver du hjälp med din Odoo-implementering?


På Dasolo hjälper vi företag att implementera, anpassa och optimera Odoo över alla moduler och versioner. Oavsett om du behöver konfigurera fält på standardmodeller, bygga anpassade moduler från grunden, eller migrera data från ett äldre system, arbetar vi praktiskt med ditt team för att få Odoo att fungera på det sätt som ditt företag faktiskt fungerar.

Om du har frågor om din Odoo-installation eller vill utforska vad som är möjligt med plattformen, kontakta oss. Vi är glada att hjälpa till.

Bildfält i Odoo: Den Kompletta Guiden
Dasolo 6 mars 2026
Dela detta inlägg
Logga in att lämna en kommentar