Se rendre au contenu

Le modèle ir.model : Comprendre le registre des modèles d'Odoo

Un guide complet sur le modèle de métadonnées qui définit chaque modèle Odoo dans le système.
11 mars 2026 par
Le modèle ir.model : Comprendre le registre des modèles d'Odoo
Dasolo
| Aucun commentaire pour l'instant

Introduction


Dans Odoo, les modèles définissent comment les données sont structurées et stockées dans la base de données. Chaque élément de données commerciales avec lequel vous travaillez, des commandes de vente aux factures en passant par les contacts, vit dans un modèle.


Comprendre les modèles Odoo est essentiel tant pour les développeurs que pour les consultants fonctionnels. Les modèles sont la base de l'architecture des données Odoo. Ils définissent les champs Odoo, les relations et la logique commerciale.


Mais où Odoo stocke-t-il des informations sur chaque modèle du système ? La réponse est ir.model. Ce modèle dans Odoo est le registre qui contient des métadonnées sur tous les autres modèles. Que vous construisiez des modules personnalisés, exploriez l'API ou déboguiez Odoo, vous rencontrerez ir.model.

Qu'est-ce que le modèle ir.model


Le modèle ir.model est le registre des métadonnées pour tous les modèles Odoo. Il stocke un enregistrement par modèle dans le système. Lorsque vous définissez un nouveau modèle en Python ou en créez un via Odoo Studio, Odoo crée ou met à jour un enregistrement ir.model.


Ce modèle dans Odoo est utilisé par le module de base. Il fait partie du cadre de base. Chaque modèle Odoo, qu'il s'agisse d'un modèle régulier, d'un modèle abstrait Odoo ou d'un modèle transitoire Odoo, a une entrée ir.model correspondante.


Le modèle est défini dans le module de base. Il est étroitement lié à ir.model.fields, qui stocke des métadonnées sur chaque champ Odoo de chaque modèle. Ensemble, ir.model et ir.model.fields forment l'épine dorsale des capacités d'introspection et de réflexion d'Odoo.


Les développeurs utilisent ir.model lorsqu'ils ont besoin de lister les modèles disponibles, de vérifier l'héritage des modèles ou de construire des outils dynamiques qui fonctionnent avec n'importe quel modèle. Le modèle API dans Odoo expose ir.model via XML-RPC et JSON-RPC.

Champs clés dans le modèle


Voici les champs Odoo les plus importants dans le modèle ir.model. Comprendre ceux-ci vous aidera à travailler efficacement avec le registre des modèles.


1. nom

Type : Char. Ce champ stocke la description lisible par l'homme du modèle. Il est traduisible et affiché dans les Paramètres Techniques et dans les outils de développement. C'est l'étiquette que vous voyez lorsque vous parcourez les modèles.


2. modèle

Type : Char. Le nom technique du modèle. C'est la chaîne que vous utilisez dans le code Python, comme res.partner ou sale.order. Il est requis et indexé pour des recherches rapides.


3. info

Type : Text. Informations ou notes supplémentaires sur le modèle. Utilisé pour la documentation et un usage interne. Peut être vide pour la plupart des modèles.


4. état

Type : Sélection. Indique si le modèle est de base (provenant des modules Odoo) ou manuel (créé via Odoo Studio ou code personnalisé). Les modèles de base sont protégés. Les modèles manuels peuvent être modifiés plus librement.


5. transitoire

Type : Booléen. Lorsque c'est vrai, ce modèle est un modèle transitoire Odoo. Les modèles transitoires sont temporaires. Leurs enregistrements sont automatiquement nettoyés. Utilisé pour les assistants et les données temporaires.


6. field_id

Type : One2many (ir.model.fields). La liste des champs Odoo définis sur ce modèle. Chaque enregistrement ir.model.fields décrit un champ : son nom, son type et d'autres attributs.


7. access_ids

Type : One2many (ir.model.access). Droits d'accès pour ce modèle. Chaque enregistrement définit quels groupes peuvent créer, lire, mettre à jour ou supprimer des enregistrements. Utilisé pour la sécurité.


8. rule_ids

Type : One2many (ir.rule). Règles d'enregistrement pour ce modèle. Les règles d'enregistrement restreignent quels enregistrements les utilisateurs peuvent voir. Utilisé pour la sécurité au niveau des lignes.


9. inherited_model_ids

Type : Many2many (ir.model). Les modèles parents lors de l'utilisation de l'héritage de modèle Odoo. Lorsque vous héritez d'un modèle dans Odoo, le modèle enfant se lie à son parent ici. C'est l'héritage de modèle Odoo en action.


10. modules

Type: Char. Un champ calculé listant les modules où ce modèle est défini. Pour les modèles étendus par plusieurs modules, cela montre tous ces modules. Utile pour comprendre les dépendances.


11. tri

Type: Integer. Ordre d'affichage pour le modèle dans le menu des Paramètres Techniques. Les valeurs plus basses apparaissent en premier. Utilisé pour organiser la liste des modèles.


12. contraintes

Type: Text. Définitions de contraintes Python. Stocke le code pour les décorateurs @api.constrains. Utilisé lorsque le modèle a une logique de validation personnalisée.


13. post_contraintes

Type: Text. Définitions de post-contraintes Python. Semblable aux contraintes mais pour la post-validation. Utilisé pour des scénarios de validation avancés.


14. sql_contraintes

Type: Text. Définitions de contraintes SQL. Contraintes au niveau de la base de données comme les index uniques. Assure l'intégrité des données au niveau de la base de données.


15. view_ids

Type: One2many (ir.ui.view). Champ calculé listant les vues associées à ce modèle. Utilisé pour l'introspection et la gestion des vues.


16. nombre_enregistrements

Type : Entier. Champ calculé montrant le nombre d'enregistrements dans ce modèle. Utile pour le reporting et pour comprendre combien de données un modèle contient.


17. nom_affiché

Type : Char. Champ calculé pour la représentation d'affichage. Utilisé lorsque l'enregistrement est affiché dans des listes et des relations. Combine généralement le nom et le modèle.


18. date_de_création

Type : Datetime. Stocke la date et l'heure de la création de l'enregistrement. Géré automatiquement par Odoo.


19. utilisateur_de_création

Type : Many2one (res.users). L'utilisateur qui a créé l'enregistrement. Utilisé pour l'audit et le suivi.


20. date_de_modification

Type : Datetime. Stocke la date et l'heure de la dernière modification. Également géré automatiquement.


21. utilisateur_de_modification

Type : Many2one (res.users). L'utilisateur qui a modifié l'enregistrement pour la dernière fois. Utilisé pour l'audit.


22. actif

Type : Booléen. Drapeau de suppression douce. Lorsque Faux, l'enregistrement est archivé. Utilisé pour les modèles obsolètes.


23. id

Type : Entier. L'ID de la base de données. Identifiant unique pour chaque enregistrement ir.model. Utilisé lors de la référence au modèle dans les appels API.


24. restreindre_fonctionnalité

Type : Booléen. Lorsque Vrai, ce modèle a une fonctionnalité restreinte dans certaines éditions d'Odoo. Utilisé pour la différenciation entre entreprise et communauté.


25. est_fil_de_mail

Type : Booléen. Indique si le modèle est un fil de mail. Les modèles de fil de mail ont un bavardage, des messages et des abonnés. Utilisé pour les modèles qui prennent en charge les discussions.


26. est_activité_mail

Type : Booléen. Indique si le modèle prend en charge les activités. Les modèles d'activité ont le planificateur d'activités et le suivi des prochaines actions.

Comment ce modèle est utilisé dans les flux de travail commerciaux


1. Paramètres techniques et configuration

Les administrateurs utilisent le menu Paramètres techniques pour parcourir les modèles. Les enregistrements ir.model définissent ce qui apparaît dans cette liste. Chaque modèle affiche son nom, sa description et le nombre de champs.


2. Gestion des droits d'accès

Lors de la configuration de la sécurité, les administrateurs attribuent des droits d'accès aux groupes. Les access_ids sur ir.model définissent quels groupes peuvent créer, lire, mettre à jour ou supprimer des enregistrements pour chaque modèle.


3. Personnalisation d'Odoo Studio

Lorsque les utilisateurs créent des modèles personnalisés dans Odoo Studio, Odoo crée de nouveaux enregistrements ir.model avec l'état manuel. La relation field_id est peuplée avec les champs Odoo personnalisés.


4. Découverte de l'API et de l'intégration

Les systèmes externes s'intègrent à Odoo via l'API XML-RPC ou JSON-RPC. Ils peuvent interroger ir.model pour découvrir les modèles disponibles et leur structure. Le modèle API dans Odoo expose cela pour l'introspection.


5. Développement de modules et débogage

Les développeurs utilisent ir.model lors de la création de modules. Ils vérifient inherited_model_ids pour comprendre l'héritage des modèles Odoo. Ils inspectent field_id pour voir tous les champs Odoo sur un modèle.

Comment les développeurs étendent ce modèle


Les développeurs étendent rarement ir.model directement. Au lieu de cela, ils travaillent avec lui lorsqu'ils définissent de nouveaux modèles. Le registre des modèles est mis à jour automatiquement lorsque vous chargez un module.


Héritage de modèle

Lorsque vous utilisez _inherit = 'res.partner' dans votre Python, Odoo met à jour l'enregistrement ir.model pour res.partner. Les inherited_model_ids sur l'enregistrement ir.model de votre nouveau modèle seront liés au parent. C'est l'héritage de modèle Odoo en action. Le modèle héritant dans Odoo maintient le registre synchronisé.


Ajout de champs

Lorsque vous ajoutez de nouveaux champs Odoo à un modèle, Odoo crée des enregistrements ir.model.fields. Ceux-ci sont liés à ir.model via le champ model_id. L'enregistrement ir.model lui-même n'est pas modifié.


Extensions Python

Vous ne remplacez généralement pas les méthodes ir.model. Le modèle fait partie du cadre de base. Si vous devez personnaliser le comportement, vous étendez les modèles que décrit ir.model, et non ir.model lui-même.


Odoo Studio

Odoo Studio crée des enregistrements ir.model et ir.model.fields lorsque vous construisez des modèles personnalisés. Aucun code requis. Le drapeau transitoire distingue le modèle transitoire Odoo des modèles réguliers. Les modèles abstraits (modèle abstrait Odoo) ne créent pas d'enregistrements ir.model car ils n'ont pas de table de base de données.

Meilleures pratiques


  • Utilisez ir.model pour l'introspection et la découverte. Lors de la construction d'intégrations, interrogez ir.model pour lister les modèles disponibles au lieu de les coder en dur.
  • Utilisez le champ modèle pour les recherches. Il est indexé. Recherchez par nom de modèle lorsque vous avez besoin des métadonnées d'un modèle spécifique.
  • Vérifiez inherited_model_ids lors de la construction de modules personnalisés. Comprenez la chaîne d'héritage avant d'étendre.
  • Utilisez le modèle API dans Odoo (XML-RPC ou JSON-RPC) pour lire ir.model. Évitez de le modifier à moins que vous ne construisiez un outil similaire à Studio.
  • Utilisez ir.model.fields pour l'introspection au niveau des champs. La relation field_id vous donne tous les champs Odoo sur un modèle.

Erreurs courantes


  • Modification directe des enregistrements ir.model. Le registre est géré par Odoo. Les modifications peuvent casser le système ou être écrasées lors de la mise à niveau.
  • Confondre ir.model avec la classe de modèle Python. ir.model est l'enregistrement de la base de données. La classe Python est le modèle réel. Ils sont liés mais différents.
  • Supposer que tous les modèles ont des enregistrements ir.model. Les classes de modèles abstraits Odoo ne créent pas de tables de base de données ni d'enregistrements ir.model.
  • Oublier que les modèles transitoires sont temporaires. Le drapeau transitoire signifie que les données du modèle transitoire Odoo sont nettoyées. Ne l'utilisez pas pour des données permanentes.
  • Interroger ir.model sans filtrage. Une instance Odoo typique a des centaines de modèles. Filtrez toujours par nom de modèle ou utilisez des domaines de recherche.

Conclusion


Le modèle ir.model est le registre de tous les modèles Odoo. Il stocke des métadonnées sur chaque modèle du système. Comprendre ses champs et comment il se rapporte à ir.model.fields vous aidera à naviguer dans l'architecture des données Odoo.


Que vous soyez un consultant fonctionnel explorant les paramètres techniques ou un développeur construisant des intégrations API, une bonne compréhension d'ir.model vous fera gagner du temps et évitera des erreurs.

Besoin d'aide pour votre implémentation Odoo ?


Dasolo aide les entreprises à mettre en œuvre, personnaliser et optimiser Odoo. Nous nous spécialisons dans les intégrations API et le développement Odoo. Notre équipe a une grande expérience de l'architecture des données Odoo et de modèles comme ir.model.


Si vous avez besoin d'aide pour votre mise en œuvre Odoo, vos modules personnalisés ou vos intégrations, nous sommes là pour vous aider. Réservez une démo pour discuter de votre projet.

Le modèle ir.model : Comprendre le registre des modèles d'Odoo
Dasolo 11 mars 2026
Partager cet article
Se connecter pour laisser un commentaire.