Explorateur des modèles Odoo : champs, relations, API
Quel est le nom technique du champ « Client » d'un devis ? Vers quel modèle pointe partner_id ? Quels modules ajoutent des champs à res.partner ? Cherchez un modèle ci-dessous : chaque fiche liste ses champs avec leur type, leur libellé français officiel, leurs relations entrantes et sortantes, et un exemple d'appel à l'API JSON-2. Sans compte, sans e-mail, pour les 888 modèles d'Odoo 19 Community.
Modèles les plus consultés
res.partnerContactbase · Persistant · 203 champssale.orderCommande clientsale · Persistant · 143 champssale.order.lineLigne de commandesale · Persistant · 120 champsaccount.movePièce comptableaccount · Persistant · 224 champsaccount.move.lineÉcriture comptableaccount · Persistant · 105 champsproduct.templateProduitproduct · Persistant · 156 champsproduct.productVariante de produitproduct · Persistant · 108 champsstock.pickingTransfertstock · Persistant · 90 champsstock.moveMouvement de stockstock · Persistant · 117 champsstock.quantQuantitésstock · Persistant · 37 champspurchase.orderBon de commande fournisseurpurchase · Persistant · 71 champscrm.leadPistecrm · Persistant · 95 champsproject.taskTâcheproject · Persistant · 102 champshr.employeeEmployéhr · Persistant · 179 champsmrp.productionOrdre de fabricationmrp · Persistant · 95 champsres.usersUtilisateurbase · Persistant · 140 champsres.companySociétésbase · Persistant · 260 champsaccount.paymentPaiementsaccount · Persistant · 63 champs
- modèles
- 888
- champs déclarés
- 12 453
- modules analysés
- 395
- version d'Odoo
- 19.0
Données vérifiées le 23 septembre 2026 · Odoo 19.0 Community
Comment utiliser l'explorateur
L'outil répond à une question que se posent chaque semaine développeurs, intégrateurs et utilisateurs avancés : « comment s'appelle ce champ dans la base, et d'où vient-il ? ». Trois étapes suffisent.
- Tapez un nom technique (res.partner, stock.picking) ou un mot du libellé (facture, contact, congé). La recherche ignore les accents et la casse.
- Ouvrez la fiche du modèle : identité (table SQL, module d'origine, modules qui l'étendent), puis la liste complète des champs, filtrable par nom ou par type.
- Partagez le résultat : l'URL de la recherche et celle de chaque champ (ancre #field-…) sont stables, vous pouvez les coller dans un ticket, un cahier des charges ou une réponse de forum.
Qu'est-ce qu'un modèle Odoo ?
Un modèle est une classe Python qui décrit un type d'enregistrement : un contact, une facture, une ligne de commande. L'ORM (Object Relational Mapping, la couche qui traduit les objets Python en requêtes SQL) crée pour chaque modèle persistant une table PostgreSQL. Le modèle res.partner est ainsi stocké dans la table res_partner.
Le nom technique suit une convention simple : un préfixe d'application (sale, account, stock, hr), puis un ou plusieurs mots séparés par des points. Les préfixes res (ressources partagées) et ir (Information Repository, le cœur technique) signalent les modèles du module base.
| Type | Classe Python | Table SQL | Dans Odoo 19 Community |
|---|---|---|---|
| Persistant | models.Model | Oui, données conservées | 546 modèles |
| Abstrait (mixin) | models.AbstractModel | Non, sert à partager des champs | 142 modèles |
| Transitoire (assistant) | models.TransientModel | Oui, vidée régulièrement | 200 modèles |
Lire la fiche d'un champ
Chaque champ possède un nom technique (partner_id), un libellé affiché à l'utilisateur (Client) et un type. Le type détermine ce que vous pouvez lire ou écrire par l'API, et comment filtrer dessus.
| Type | Contenu | Exemple |
|---|---|---|
| char, text, html | Texte court, long ou mis en forme | name, comment |
| integer, float, monetary | Nombre entier, décimal ou montant lié à une devise | amount_total |
| boolean, date, datetime | Case à cocher, date, date et heure | active, date_order |
| selection | Une valeur parmi une liste fermée | state (draft, sale, cancel) |
| many2one | Lien vers UN enregistrement d'un autre modèle | partner_id → res.partner |
| one2many | Liste des enregistrements qui pointent vers celui-ci | order_line → sale.order.line |
| many2many | Liens multiples dans les deux sens | tag_ids → crm.tag |
Héritage : pourquoi un modèle a des champs venus de dizaines de modules
Odoo est modulaire : chaque application ajoute ce dont elle a besoin aux modèles existants, sans les dupliquer. Le module sale ajoute par exemple les commandes d'un contact à res.partner. La fiche indique, pour chaque champ, le module qui le déclare. Trois mécanismes coexistent.
- Extension (_inherit sur le même nom) : un module ajoute ou modifie des champs d'un modèle existant. C'est le cas le plus courant.
- Mixin (_inherit vers un modèle abstrait) : le modèle reçoit un ensemble de champs prêts à l'emploi, par exemple le fil de discussion de mail.thread ou les activités de mail.activity.mixin.
- Délégation (_inherits) : le modèle est adossé à un autre et en expose les champs. Un utilisateur res.users est ainsi lié à un contact res.partner via partner_id.
Retrouver le nom technique dans votre propre Odoo
L'explorateur décrit Odoo standard. Pour vérifier un champ dans votre base, activez le mode développeur : Paramètres, puis « Activer le mode développeur », ou ajoutez ?debug=1 à l'adresse. Survolez ensuite un libellé de formulaire : une info-bulle affiche le nom technique du champ et son modèle.
Le menu Paramètres > Technique > Structure de la base de données > Modèles liste aussi tous les modèles installés, y compris ceux de vos modules spécifiques et les champs créés avec Studio (préfixe x_studio_).
Interroger un modèle par l'API
Odoo 19 introduit l'API JSON-2 : une requête POST vers /json/2/<modèle>/<méthode>, authentifiée par une clé API envoyée dans l'en-tête Authorization. Chaque fiche de l'explorateur fournit un exemple prêt à copier en curl et en Python avec de vrais champs du modèle. La méthode fields_get renvoie de son côté la définition des champs de votre base, personnalisations comprises.
Les clés API se créent dans Préférences > Sécurité du compte, avec une durée de validité de trois mois au plus. D'après la documentation d'Odoo, l'accès à l'API externe est réservé à la formule Custom : il n'est pas disponible sur les formules One App Free et Standard.
Méthode et limites des données
Les fiches sont générées à partir du code source d'Odoo 19 Community (build publique du 28 août 2026, licence LGPL v3) : 395 modules installables analysés, sans exécuter Odoo. Les localisations étrangères et les modules de test sont exclus ; les localisations françaises sont conservées. Les libellés et aides en français et en espagnol proviennent des fichiers de traduction officiels d'Odoo.
Ne figurent pas ici : les modules Enterprise, vos modules spécifiques, les champs Studio et les listes de sélection calculées dynamiquement. Pour interroger le schéma réel de VOTRE base, Aidoo lit la structure de vos modèles et répond en langage naturel. Vous préparez un changement de version ? Consultez notre page migration vers Odoo 19.
Questions fréquentes
Ces données valent-elles pour Odoo Online, Odoo.sh et Enterprise ?
Oui pour la partie Community : ses modèles et ses champs sont présents dans toutes les éditions d'Odoo 19. Enterprise ajoute d'autres modules (et donc d'autres champs) qui ne sont pas listés ici.
Pourquoi un champ que je vois dans mon Odoo n'apparaît-il pas ?
Il provient probablement d'un module Enterprise, d'un module tiers, de Studio (préfixe x_studio_) ou d'une autre version d'Odoo. Activez le mode développeur et survolez le champ pour connaître son nom technique et son modèle.
Quelle différence entre res.partner et res.users ?
res.partner représente toute personne ou société (client, fournisseur, contact). res.users représente un compte qui se connecte à Odoo : il est adossé à un res.partner par délégation (_inherits) et en réutilise le nom, l'e-mail et l'adresse.
Comment obtenir la liste des champs d'un modèle par l'API ?
Appelez la méthode fields_get du modèle, par exemple POST /json/2/res.partner/fields_get. Elle renvoie le type, le libellé et les attributs de chaque champ tels qu'ils existent dans votre base, personnalisations comprises.
Puis-je réutiliser ces informations ?
Oui. Le code d'Odoo Community est publié sous licence LGPL v3 et les noms de modèles et de champs sont des faits techniques. Si l'outil vous aide, un lien vers cette page aide d'autres développeurs à le trouver.
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">Explorateur des modèles Odoo (champs, relations, API)</a>Sources
- Documentation Odoo 19 : ORM API
- Documentation Odoo 19 : API externe JSON-2
- Documentation Odoo 19 : héritage des modèles
- Documentation Odoo 19 : mode développeur
- Documentation Odoo 19 : champs Studio
- Code source d'Odoo 19.0 (GitHub)
- Builds officielles d'Odoo (nightly.odoo.com)
- Licence GNU LGPL v3
Mis à jour le 23 septembre 2026
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.