Outil gratuit · Odoo 19

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.

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.

  1. Tapez un nom technique (res.partner, stock.picking) ou un mot du libellé (facture, contact, congé). La recherche ignore les accents et la casse.
  2. 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.
  3. 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.

TypeClasse PythonTable SQLDans Odoo 19 Community
Persistantmodels.ModelOui, données conservées546 modèles
Abstrait (mixin)models.AbstractModelNon, sert à partager des champs142 modèles
Transitoire (assistant)models.TransientModelOui, vidée régulièrement200 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.

TypeContenuExemple
char, text, htmlTexte court, long ou mis en formename, comment
integer, float, monetaryNombre entier, décimal ou montant lié à une deviseamount_total
boolean, date, datetimeCase à cocher, date, date et heureactive, date_order
selectionUne valeur parmi une liste ferméestate (draft, sale, cancel)
many2oneLien vers UN enregistrement d'un autre modèlepartner_id → res.partner
one2manyListe des enregistrements qui pointent vers celui-ciorder_line → sale.order.line
many2manyLiens multiples dans les deux senstag_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>

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.