Passa al contenuto

Campo Immagine in Odoo: Guida Completa

Una guida pratica al campo Immagine nel modello di dati Odoo, dall'uso di base alla personalizzazione tecnica e alle migliori pratiche
6 marzo 2026 di
Campo Immagine in Odoo: Guida Completa
Dasolo
| Ancora nessun commento

Introduzione


Se hai mai caricato una foto di prodotto, impostato un logo aziendale o allegato un'immagine del profilo a un record di dipendente in Odoo, hai già interagito con un campo Immagine. È uno dei tipi di campo più visivi nel modello di dati di Odoo e appare in più luoghi di quanto la maggior parte degli utenti realizzi.


Per gli utenti aziendali, funziona principalmente senza problemi. Clicchi un pulsante, carichi un file e l'immagine appare nel record. Ma per i consulenti e gli sviluppatori che configurano Odoo, c'è molto di più che accade sotto il cofano. Il campo Immagine ha il proprio meccanismo di archiviazione, un comportamento di ridimensionamento automatico e alcune sfumature che vale la pena comprendere prima di iniziare ad aggiungere campi immagine a modelli personalizzati.


Questa guida copre cosa memorizza il campo Immagine, come si comporta nel framework di Odoo, come aggiungerlo utilizzando Odoo Studio o Python, e esempi pratici da flussi di lavoro aziendali reali.

Cos'è il campo Immagine in Odoo


Il campo Immagine è un tipo di campo dedicato nell'Odoo ORM, introdotto come fields.Image in Odoo 13. Prima di quella versione, gli sviluppatori utilizzavano un campo fields.Binary combinato con il widget image per ottenere lo stesso risultato. Oggi, il tipo di campo Immagine gestisce l'intero ciclo di vita dello storage delle immagini, inclusa la ridimensionamento automatico, in modo autonomo.


Sotto il cofano, il campo Immagine memorizza dati binari codificati in base64. Nel database PostgreSQL, questi dati vengono salvati come una colonna bytea o, più comunemente nelle versioni moderne di Odoo, come un allegato file collegato al record. Questo storage basato su allegati mantiene le tabelle principali del database più leggere e consente a Odoo di servire immagini in modo efficiente tramite il suo sistema di URL per allegati.


Come appare nell'interfaccia

In una vista modulo, un campo Immagine si presenta come un segnaposto immagine cliccabile. Gli utenti possono caricare un file direttamente dal proprio computer e, in alcuni casi, possono anche incollare un URL. Il campo mostra un'anteprima in miniatura direttamente sul modulo, il che rende facile individuarlo a colpo d'occhio.


Nelle viste elenco, i campi Immagine sono raramente mostrati perché le miniature nelle liste possono rallentare il caricamento. Tuttavia, possono essere visualizzati nelle viste kanban, dove layout basati su schede piccole beneficiano di indicatori visivi come foto di prodotti o avatar di contatti.


Tipi di campo Odoo: Immagine vs Binario

È utile conoscere la distinzione tra i due. Un campo Binario memorizza qualsiasi tipo di file: PDF, fogli di calcolo, file zip, e così via. Il campo Immagine è specificamente progettato per file immagine. Applica il ridimensionamento automatico al salvataggio, impone la validazione specifica per le immagini e si rende correttamente con il widget immagine per impostazione predefinita. Se stai memorizzando file non immagine, utilizza Binario. Se stai memorizzando foto o loghi, utilizza Immagine.

Come funziona il campo


Quando un utente carica un'immagine in un campo Immagine, Odoo non memorizza semplicemente il file grezzo così com'è. Elabora prima l'immagine.


Ridimensionamento automatico

La dichiarazione fields.Image accetta i parametri max_width e max_height. Se l'immagine caricata supera quelle dimensioni, Odoo la ridimensiona automaticamente mantenendo il rapporto d'aspetto. Questo avviene in modo trasparente al salvataggio, quindi gli utenti non devono mai pensarci.

La dimensione massima predefinita per un campo Immagine standard è di 1920 pixel sul lato più lungo. Questo è il motivo per cui il campo è spesso chiamato image_1920 nei modelli Odoo standard come product.template o res.partner.


Varianti di dimensione dell'immagine

Nei modelli Odoo integrati, vedrai spesso un modello di campi immagine correlati accanto a quello principale: image_1920, image_1024, image_512, image_256 e image_128. Questi sono campi separati fields.Image definiti come campi correlati che puntano all'immagine principale, ciascuno con limiti di dimensione diversi.


Questo approccio consente a Odoo di servire la dimensione dell'immagine giusta a seconda del contesto. Una pagina di elenco prodotti recupera la miniatura piccola image_128 per mantenere i caricamenti della pagina veloci. Una pagina di dettaglio prodotto recupera l'intera image_1920 per una visualizzazione più nitida. Per i modelli personalizzati, potresti o meno aver bisogno di questo modello multi-dimensionale a seconda di come e dove verrà visualizzata l'immagine.


Archiviazione come allegati

Per impostazione predefinita, i campi immagine memorizzano i loro dati come allegati di file Odoo. Ciò significa che il contenuto binario vive nel modello ir.attachment piuttosto che direttamente nella tabella dei record. Il record contiene un riferimento all'allegato.


Praticamente, questo mantiene le tabelle principali del database snelle. Significa anche che le immagini sono accessibili tramite URL prevedibili come /web/image/product.template/42/image_1920, che è il modello utilizzato nelle pagine web, nei modelli di email e nelle risposte API.


Controllo accessi

I campi immagine rispettano le stesse regole di accesso del resto del record. Se un utente non ha accesso in lettura a un prodotto, non può recuperare nemmeno la sua immagine. Questo viene gestito automaticamente dal livello di sicurezza di Odoo, che è qualcosa da sapere quando si costruiscono portali rivolti ai clienti o pagine web pubbliche.

Casi d'uso aziendali


Il campo immagine appare in quasi ogni modulo Odoo. Ecco alcune delle applicazioni reali più comuni.


1. Catalogo prodotti (Vendite e Inventario)

Le immagini dei prodotti sono probabilmente l'uso più visibile dei campi immagine in Odoo. Ogni modello di prodotto ha un campo image_1920, e quelle immagini appaiono nel webshop, nei PDF degli ordini di vendita, negli schermi del punto vendita e nelle operazioni di picking sui dispositivi mobili.

Le aziende con cataloghi ampi spesso utilizzano l'API per caricare in massa le immagini dei prodotti piuttosto che aggiungerle una per una tramite l'interfaccia. Il campo immagine accetta dati binari codificati in base64, quindi è semplice caricare immagini programmaticamente tramite XML-RPC o JSON-RPC.


2. Loghi di clienti e fornitori (CRM e Acquisti)

Il modello res.partner ha un campo Immagine utilizzato per le foto di contatto e i loghi delle aziende. Questa immagine appare nel modulo partner, nell'area chatter e nelle schede kanban CRM. Per i team di vendita che lavorano con molti account, avere i loghi nei registri dei contatti rende più facile navigare visivamente attraverso l'elenco dei clienti.


3. Foto dei dipendenti (HR)

Il modello hr.employee memorizza una foto del dipendente in un campo Immagine. Questa foto appare nell'elenco dei dipendenti, sulle buste paga in alcune configurazioni e nel modulo Odoo Discuss accanto ai messaggi. I team HR spesso caricano queste foto durante l'inserimento di un grande numero di nuovi dipendenti, utilizzando nuovamente l'importazione in massa o l'API.


4. Foto di attrezzature e beni (Manutenzione)

Il modulo Manutenzione consente di allegare un'immagine ai registri delle attrezzature. I tecnici di campo trovano utile avere una foto della macchina direttamente sull'ordine di manutenzione, in modo da poter confermare rapidamente di stare lavorando sul giusto pezzo di attrezzatura prima di iniziare una riparazione.


5. Moduli di ispezione o qualità personalizzati

Alcune aziende costruiscono modelli personalizzati in Odoo per controlli di qualità, ispezioni sul sito o conferme di consegna. Aggiungere un campo Immagine a questi modelli consente al personale di campo di allegare una foto come prova direttamente sul registro. Questo è un comune schema di personalizzazione di Odoo e funziona bene sia che il campo venga aggiunto tramite Odoo Studio o direttamente nel codice Python.

Creazione o personalizzazione del campo


Ci sono due modi principali per aggiungere un campo Immagine a un modello Odoo: tramite Odoo Studio senza scrivere codice, o tramite sviluppo Python per un maggiore controllo.


Utilizzando Odoo Studio

Odoo Studio è lo strumento di personalizzazione senza codice integrato. Per aggiungere un campo Immagine utilizzando Studio, apri l'app pertinente, attiva Studio dal menu in alto e naviga alla vista del modulo in cui desideri che il campo appaia.


Nel pannello dei campi a sinistra, trascina un campo Immagine sul modulo. Studio ti chiederà di dargli un'etichetta e creerà automaticamente il campo sottostante nel modello. Questo è l'approccio raccomandato per gli utenti aziendali e i consulenti funzionali che desiderano creare campi in Odoo senza coinvolgere uno sviluppatore.

I campi creati tramite Studio sono prefissati con x_studio_ per convenzione, ad esempio x_studio_site_photo. Si comportano esattamente come i campi Immagine nativi in termini di archiviazione e visualizzazione.


Utilizzando Python (sviluppo Odoo)

Per personalizzazioni tecniche, si definiscono i campi Immagine direttamente in un file modello Python. Ecco un esempio di base di come un sviluppatore aggiungerebbe un campo Immagine a un modello personalizzato:


from odoo import models, fields

class SiteInspection(models.Model):
    _name = 'site.inspection'
    _description = 'Ispezione del sito'

    name = fields.Char(string='Riferimento', required=True)
    photo = fields.Image(
        string='Foto del sito',
        max_width=1920,
        max_height=1920,
    )
    photo_128 = fields.Image(
        related='photo',
        max_width=128,
        max_height=128,
        store=True,
        string='Miniatura',
    )

I parametri max_width e max_height indicano a Odoo di limitare la dimensione memorizzata a 1920 pixel. Il secondo campo, photo_128, è un campo correlato che memorizza una versione più piccola da utilizzare nelle schede kanban o nelle visualizzazioni elenco. Questo è lo standard per lo sviluppo Odoo per gestire più dimensioni di immagini su un singolo record.


Aggiungere il campo a una vista

Una volta che il campo esiste nel modello, deve essere aggiunto a una vista per essere visibile nell'interfaccia. In una vista modulo XML, si visualizza un campo Immagine utilizzando l'attributo widget="image":

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

La classe oe_avatar lo posiziona come un avatar circolare nell'angolo in alto a sinistra del modulo, che è lo stile standard di Odoo. Puoi anche usarlo senza la classe per posizionarlo in linea all'interno di un layout di modulo.

Migliori pratiche


Ecco le raccomandazioni che diamo ai clienti quando lavorano con i campi Immagine in Odoo.


Imposta limiti di dimensione realistici

Il limite predefinito di 1920 pixel è appropriato per la maggior parte dei casi d'uso. Evita di aumentarlo a meno che tu non abbia una forte motivazione, come la fotografia di prodotto ad alta risoluzione per la stampa. Immagini più grandi significano allegati più grandi, il che influisce sulla dimensione del database e sulle prestazioni di caricamento della pagina.


Crea una variante miniatura per elenchi e kanban

Se stai visualizzando l'immagine in visualizzazioni a elenco o schede kanban, definisci un campo correlato di dimensioni ridotte limitato a 128 o 256 pixel. Recuperare una miniatura di 128 pixel è molto più veloce che caricare l'immagine completa da 1920 pixel per ogni scheda sullo schermo.


Utilizza l'API per caricamenti di immagini in blocco

Quando hai bisogno di caricare immagini per centinaia o migliaia di record, non farlo manualmente tramite l'interfaccia. Usa l'API Odoo XML-RPC o JSON-RPC per scrivere i dati delle immagini codificati in base64 direttamente nel campo. Questo è molto più veloce e può essere automatizzato in uno script. La guida per sviluppatori Odoo tratta bene questo schema.


Comprimi le immagini prima di caricarle

Anche se Odoo ridimensiona automaticamente le immagini, non sempre le comprime in modo aggressivo. Un JPEG da 5 MB ridimensionato a 1920 pixel può comunque essere di diverse centinaia di kilobyte. Pre-comprimere le immagini prima del caricamento mantiene le dimensioni degli allegati gestibili, in particolare quando si gestiscono grandi cataloghi di prodotti.


Evita i campi Immagine nelle visualizzazioni a elenco frequentemente interrogate

Includere un campo Immagine in una colonna di visualizzazione a elenco costringe Odoo a recuperare dati binari per ogni riga visibile. Questo può rendere le visualizzazioni a elenco notevolmente più lente. Usa una miniatura piccola se hai davvero bisogno di un'immagine in un elenco e conserva l'immagine a grandezza naturale solo per la visualizzazione del modulo.


Trappole comuni


Questi sono gli errori che vediamo più spesso quando i team iniziano a lavorare con i campi Immagine in Odoo.


Confondere i campi Binari e Immagine

Un campo Binario senza il widget immagine verrà visualizzato come un pulsante di download, non come un'anteprima dell'immagine. Se desideri una corretta visualizzazione dell'immagine, hai bisogno di un tipo di campo fields.Image o di un fields.Binary con widget="image" esplicitamente impostato nella vista. Dimenticare questo è una comune fonte di confusione, specialmente quando si lavora su versioni più vecchie di Odoo.


Non pensare a varianti di dimensione dell'immagine abbastanza presto

Aggiungere un singolo campo Immagine grande è facile, ma se in seguito ti rendi conto di aver bisogno di versioni più piccole per una visualizzazione kanban o un elenco sul sito web, aggiungere quei campi correlati richiede una migrazione del database se sei in un modulo personalizzato. Pianificare le varianti di dimensione in anticipo evita mal di testa in seguito.


Memorizzare le immagini direttamente invece di utilizzare allegati

In versioni molto vecchie di Odoo o in istanze mal configurate, i dati binari potrebbero essere memorizzati direttamente nella colonna del database piuttosto che come allegati. Questo aumenta significativamente la dimensione delle tabelle principali e rallenta le query non correlate. Assicurati che la tua istanza Odoo sia configurata per utilizzare lo storage di file o uno storage compatibile con S3 per gli allegati.


Utilizzare i campi Immagine come archiviazione di documenti

Alcuni utenti cercano di memorizzare documenti scansionati o screenshot nei campi Immagine. Anche se tecnicamente possibile, non è lo strumento giusto. Per la gestione dei documenti, utilizza il modulo Odoo Documenti o un campo Binario con un widget di download file. I campi Immagine sono progettati per foto e loghi, non per memorizzare documenti multi-pagina.


Dimenticare le regole di accesso sulle pagine pubbliche

Se visualizzi URL di immagini su un sito web pubblico o in un portale e il record sottostante non è accessibile agli utenti pubblici, l'immagine restituirà un errore 404. Quando costruisci pagine web o portali per clienti, controlla sempre che l'URL dell'immagine sia accessibile al pubblico previsto.

Conclusione


Il campo Immagine è uno dei tipi di campo più semplici da utilizzare in superficie, ma ha abbastanza profondità da far inciampare i team che non pianificano in anticipo. Comprendere come Odoo gestisce il ridimensionamento, la memorizzazione come allegati e il pattern delle varianti multi-dimensioni ti farà risparmiare tempo quando costruisci o configuri modelli che necessitano di dati visivi.


Per gli utenti aziendali, sapere che le immagini sono memorizzate in modo sicuro sul record e accessibili tramite URL prevedibili aiuta quando si impostano pagine web o visualizzazioni del portale. Per gli sviluppatori, la combinazione di fields.Image con campi miniature correlati è il pattern standard di Odoo, ed è utile familiarizzare con esso fin da subito.


Che tu stia aggiungendo una foto di prodotto al tuo catalogo, allegando una foto di ispezione del sito a un modello personalizzato, o costruendo un portale clienti che visualizza loghi di contatto, il campo Immagine ti offre un modo pulito e integrato per gestire i dati visivi all'interno del modello dati di Odoo.

Hai bisogno di aiuto con la tua implementazione di Odoo?


Da Dasolo, aiutiamo le aziende a implementare, personalizzare e ottimizzare Odoo in tutti i moduli e versioni. Che tu abbia bisogno di configurare campi su modelli standard, costruire moduli personalizzati da zero, o migrare dati da un sistema legacy, lavoriamo a stretto contatto con il tuo team per far funzionare Odoo nel modo in cui la tua azienda opera realmente.

Se hai domande sulla tua configurazione Odoo o vuoi esplorare cosa è possibile fare con la piattaforma, contattaci. Siamo felici di aiutare.

Campo Immagine in Odoo: Guida Completa
Dasolo 6 marzo 2026
Condividi articolo
Accedi per lasciare un commento