Odoo 19.0 Community · Persistant

ir.model.fields : champs, relations et API

Le modèle ir.model.fields (« Champs ») est un modèle persistant déclaré par le module Base, puis enrichi par 3 autres modules. Il expose 51 champs, dont 45 déclarés directement sur le modèle ; 21 champs d'autres modèles pointent vers lui. Retrouvez ci-dessous chaque champ avec son nom technique, son type, son libellé français et ses relations, puis un exemple d'appel à l'API JSON-2 d'Odoo 19.

Fiche d'identité

Nom technique
ir.model.fields
Libellé
Champs
Type
Persistant (models.Model)
Table SQL
ir_model_fields
Module d'origine
Base (base)
Étendu par
mail, base_sparse_field, website
Tri par défaut (_order)
name, id
Champ d'affichage (_rec_name)
field_description

Champs du modèle

45 champs propres, 0 hérités des mixins et 6 champs automatiques de l'ORM. Cliquez sur un nom pour obtenir le lien direct vers le champ.

51 champs affichés sur 51

Nom techniqueLibelléTypeDétails
column1Colonne 1

Colonne référençant l'enregistrement dans la table du modèle

char
column2Colonne 2

Colonne référençant l'enregistrement du tableau comodel

char
company_dependentDépendant de la société

La valeur de ce champ dépend de l'entreprise

boolean
lecture seule
computeCalculer

Code to compute the value of the field. Iterate on the recordset 'self' and assign the field's value: for record in self: record['size'] = len(record.name) Modules time, datetime, dateutil are available.

text
copiedCopié

Indique si la valeur est copiée lors de la duplication d'un enregistrement.

boolean
calculé, stocké
currency_fieldChamp devise

Nom du champ Many2one contenant res.currency

char
dependsDépendances

Dependencies of compute method; a list of comma-separated field names, like name, partner_id.name

char
domainDomaine

Le domaine optionnel est utilisé pour limiter les valeurs possibles des champs concernés. Il s'exprime en langage Python sous forme de triplets. Par exemple : [('color', '=', 'rouge')]

char
field_descriptionÉtiquette de champchar
requistraduisible
group_expandDéplier les groupes

If checked, all the records of the target model will be included in a grouped result (e.g. 'Group By' filters, Kanban columns, etc.). Note that it can significantly reduce performance if the target model of the field contains a lot of records; usually used on models with few records (e.g. Stages, Job Positions, Event Types, etc.).

boolean
groupsGroupesmany2many
helpChamp d'aidetext
traduisible
indexIndexéboolean
modelNom de modèle

Le nom technique du modèle auquel ce champ appartient

char
requis
model_idModèle

Le modèle auquel ce champ appartient

many2one
requis
modulesDans Applications

Liste des modules dans lequels le champ est défini

char
calculé
nameNom de champchar
requis
on_deleteLors de la suppression

Propriété "Lors de la suppression" des champs many2one

selection

Valeurs : cascade (Cascade), set null (Définir NULL), restrict (Restreindre)

readonlyLecture seuleboolean
relationModèle associé

Pour les champs de relation, le nom technique du modèle cible

char
relation_fieldChamp de relation

Pour les champs one2many, le champ du modèle cible qui réalise la relation many2one correspondante

char
relation_field_idChamp de relationmany2one
calculé, stocké
relation_tableTable de relation

Utilisé pour les champs many2many pour définir un nom de table de relation

char
requiredObligatoireboolean
sanitizeAssainir HTMLboolean
sanitize_attributesAssainir attributs HTMLboolean
sanitize_formAssainir formulaire HTMLboolean
sanitize_overridableAssainissement HTML contournableboolean
sanitize_styleAssainir style HTMLboolean
sanitize_tagsAssainir étiquettes HTMLboolean
selectableSélectionnableboolean
selectionOptions de sélection (Obsolète)char
calculé
selection_idsOptions de sélectionone2many

inverse : field_id

serialization_field_idChamp de sérialisation

L'activation de cette option indique que ce champ sera stocké dans la structure de sérialisation "creuse", plutôt que d'avoir une colonne dédiée dans la base de données. On ne peut pas changer cette option après la création.

many2one

ajouté par Champs isolés (base_sparse_field)

sizeTailleinteger
stateTypeselection
requislecture seule

Valeurs : manual (Champ personalisé), base (Champ de base)

storeEnregistré

Indique si la valeur est sauvegardée dans la base de données.

boolean
strip_classesAttribut de classe stripboolean
strip_styleAttribut de style stripboolean
trackingActiver le suivi des commandes

Si défini, chaque modification apportée à ce champ est suivie. La valeur est utilisée pour ordonner les valeurs de suivi.

integer

ajouté par Discussion (mail)

translateTraduisible

Indique si les valeurs de ce champ peuvent êtres traduites (active le mécanisme de traduction pour ce champ)

selection

Valeurs : standard (Traduire comme un ensemble), html_translate (Traduire les termes HTML), xml_translate (Traduire les termes XML)

ttypeType de Champselection
requis

Valeurs calculées dynamiquement

website_form_blacklistedMis sur liste noire dans le formulaire web

Mettez ce champ sur liste noire pour les formulaires web

boolean

ajouté par Site Web (website)

create_dateCréé ledatetime
lecture seuleautomatique
create_uidCréé parmany2one
lecture seuleautomatique
display_nameNom affichéchar
lecture seulecalculéautomatique
idIDinteger
lecture seuleautomatique
write_dateDernière mise à jour ledatetime
lecture seuleautomatique
write_uidDernière mise à jour parmany2one
lecture seuleautomatique

Relations

Modèles liés depuis ce modèle

Champs d'autres modèles qui pointent ici

Lire ce modèle par l'API

Exemple d'appel à l'API JSON-2 d'Odoo 19 : lecture des cinq premiers enregistrements avec des champs réels du modèle. Remplacez l'instance, la base et la clé API par les vôtres.

curl
curl -X POST "https://votre-instance.odoo.com/json/2/ir.model.fields/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: votre-base" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["field_description","model","model_id","name","state"],"limit":5}'
Python (requests)
import requests

BASE_URL = "https://votre-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "votre-base"}

res = requests.post(
    f"{BASE_URL}/ir.model.fields/search_read",
    headers=headers,
    json={"domain": [], "fields": ["field_description","model","model_id","name","state"], "limit": 5},
)
res.raise_for_status()
print(res.json())
  • L'accès à l'API externe est réservé à la formule Custom d'Odoo.
  • XML-RPC et JSON-RPC seront retirés dans Odoo 22 (automne 2028) : préférez JSON-2.
  • Les droits d'accès et règles d'enregistrement de l'utilisateur de la clé s'appliquent.

Citer cet outil

Vous rédigez un tutoriel, une documentation interne ou une réponse sur un forum ? Copiez ce lien pour renvoyer vos lecteurs vers la fiche à jour.

<a href="https://aidoo.ai/fr/outils/explorateur-modeles-odoo/ir-model-fields">ir.model.fields (Odoo 19.0)</a>

Sources

Données vérifiées le 23 septembre 2026 · Odoo 19.0 Community

Vous avez un projet Odoo ou souhaitez exploiter votre ERP avec l'IA ? Échangeons

Intégration, développement de modules, connexion de Claude ou ChatGPT à vos données : décrivez-nous votre contexte, nous vous répondons sous 24 heures ouvrées.