Skip to Content

Forståelse av Odoo's Modellregister: ir.model Modellen

En komplett guide til metadata-modellen som definerer hver Odoo-modell i systemet
11. mars 2026 etter
Forståelse av Odoo's Modellregister: ir.model Modellen
Dasolo
| No comments yet

Introduksjon


I Odoo definerer modeller hvordan data er strukturert og lagret i databasen. Hver bit av forretningsdata du jobber med, fra salgsordrer til fakturaer til kontakter, lever i en modell.


Å forstå Odoo-modeller er essensielt for både utviklere og funksjonelle konsulenter. Modeller er grunnlaget for Odoo-databasearkitekturen. De definerer Odoo-felt, relasjoner og forretningslogikk.


Men hvor lagrer Odoo informasjon om hver modell i systemet? Svaret er ir.model. Denne modellen i Odoo er registeret som holder metadata om alle andre modeller. Enten du bygger tilpassede moduler, utforsker API-en eller feilsøker Odoo, vil du støte på ir.model.

Hva er ir.model-modellen


ir.model-modellen er metadata-registeret for alle Odoo-modeller. Den lagrer én post per modell i systemet. Når du definerer en ny modell i Python eller oppretter en via Odoo Studio, oppretter eller oppdaterer Odoo en ir.model-post.


Denne modellen i Odoo brukes av basismodulen. Den er en del av kjernestrukturen. Hver Odoo-modell, enten det er en vanlig modell, en Odoo-abstrakt modell, eller en Odoo-transient modell, har en tilsvarende ir.model-post.


Modellen er definert i basismodulen. Den er nært knyttet til ir.model.fields, som lagrer metadata om hvert Odoo-felt på hver modell. Sammen danner ir.model og ir.model.fields ryggraden i Odoos introspeksjons- og refleksjonskapasiteter.


Utviklere bruker ir.model når de trenger å liste tilgjengelige modeller, sjekke modellarv eller bygge dynamiske verktøy som fungerer med hvilken som helst modell. API-modellen i Odoo eksponerer ir.model gjennom XML-RPC og JSON-RPC.

Nøkkelfelt i modellen


Her er de viktigste Odoo-feltene i ir.model-modellen. Å forstå disse vil hjelpe deg å jobbe effektivt med modellregisteret.


1. navn

Type: Char. Dette feltet lagrer den menneskelig lesbare beskrivelsen av modellen. Det er oversettbart og vises i tekniske innstillinger og i utviklerverktøy. Det er etiketten du ser når du blar gjennom modeller.


2. modell

Type: Char. Det tekniske navnet på modellen. Dette er strengen du bruker i Python-kode, som res.partner eller sale.order. Det er påkrevd og indeksert for raske oppslag.


3. info

Type: Text. Tilleggsinformasjon eller notater om modellen. Brukes til dokumentasjon og intern bruk. Kan være tomt for de fleste modeller.


4. tilstand

Type: Utvalg. Indikerer om modellen er base (fra Odoo-moduler) eller manuell (opprettet via Odoo Studio eller tilpasset kode). Base-modeller er beskyttet. Manuelle modeller kan endres mer fritt.


5. transient

Type: Boolean. Når True, er denne modellen en Odoo transient modell. Transiente modeller er midlertidige. Deres poster blir automatisk ryddet opp. Brukes for veivisere og midlertidige data.


6. field_id

Type: One2many (ir.model.fields). Listen over Odoo-felt definert på denne modellen. Hver ir.model.fields-post beskriver ett felt: dets navn, type og andre attributter.


7. access_ids

Type: One2many (ir.model.access). Tilgangsrettigheter for denne modellen. Hver post definerer hvilke grupper som kan opprette, lese, oppdatere eller slette poster. Brukes for sikkerhet.


8. rule_ids

Type: One2many (ir.rule). Registreringsregler for denne modellen. Registreringsregler begrenser hvilke poster brukere kan se. Brukes for radnivå sikkerhet.


9. inherited_model_ids

Type: Many2many (ir.model). Foreldremodellene når du bruker Odoo-modellarv. Når du arver en modell i Odoo, kobles barnemodellen til sin forelder her. Dette er Odoo arve-modell i aksjon.


10. moduler

Type: Char. Et beregnet felt som viser modulene der denne modellen er definert. For modeller utvidet av flere moduler, viser dette alle. Nyttig for å forstå avhengigheter.


11. sort

Type: Integer. Visningsrekkefølge for modellen i menyen for tekniske innstillinger. Lavere verdier vises først. Brukes for å organisere modelllisten.


12. constrains

Type: Text. Python begrensningsdefinisjoner. Lagrer koden for @api.constrains-dekoratører. Brukes når modellen har tilpasset valideringslogikk.


13. post_constrains

Type: Text. Python post-begrensningsdefinisjoner. Ligner på constrains, men for post-validering. Brukes for avanserte valideringsscenarier.


14. sql_constraints

Type: Text. SQL begrensningsdefinisjoner. Databasenivå begrensninger som unike indekser. Sikrer dataintegritet på databasenivå.


15. view_ids

Type: One2many (ir.ui.view). Beregnet felt som viser visninger knyttet til denne modellen. Brukes for introspeksjon og visningsadministrasjon.


16. record_count

Type: Integer. Beregnet felt som viser antall poster i denne modellen. Nyttig for rapportering og forståelse av hvor mye data en modell inneholder.


17. display_name

Type: Char. Beregnet felt for visningsrepresentasjon. Brukes når posten vises i lister og relasjoner. Kombinerer typisk navn og modell.


18. create_date

Type: Datetime. Lagrer dato og tid når posten ble opprettet. Administreres automatisk av Odoo.


19. create_uid

Type: Many2one (res.users). Brukeren som opprettet posten. Brukes for revisjon og sporing.


20. write_date

Type: Datetime. Lagrer dato og tid for den siste modifikasjonen. Også administrert automatisk.


21. write_uid

Type: Many2one (res.users). Brukeren som sist modifiserte posten. Brukes for revisjon.


22. aktiv

Type: Boolean. Soft delete flag. When False, the record is archived. Used for deprecated models.


23. id

Type: Integer. Database-ID. Unik identifikator for hver ir.model-post. Brukes når man refererer til modellen i API-anrop.


24. restrict_functionality

Type: Boolean. Når True, har denne modellen begrenset funksjonalitet i visse Odoo-utgaver. Brukes for differensiering mellom enterprise og community.


25. is_mail_thread

Type: Boolean. Indikerer om modellen er en e-posttråd. E-posttrådmodeller har chatter, meldinger og følgere. Brukes for modeller som støtter diskusjoner.


26. is_mail_activity

Type: Boolean. Indikerer om modellen støtter aktiviteter. Aktivitetsmodeller har aktivitetsplanlegger og sporing av neste handling.

Hvordan denne modellen brukes i forretningsarbeidsflyter


1. Teknisk innstillinger og konfigurasjon

Administratorer bruker menyen for tekniske innstillinger for å bla gjennom modeller. ir.model-postene definerer hva som vises i den listen. Hver modell viser sitt navn, beskrivelse og antall felt.


2. Tilgangsrettighetsadministrasjon

Når du konfigurerer sikkerhet, tildeler administratorer tilgangsrettigheter til grupper. access_ids på ir.model definerer hvilke grupper som kan opprette, lese, oppdatere eller slette poster for hver modell.


3. Odoo Studio Tilpasning

Når brukere oppretter tilpassede modeller i Odoo Studio, oppretter Odoo nye ir.model-poster med tilstanden manual. felt_id-relasjonen fylles med de tilpassede Odoo-feltene.


4. API og Integrasjonsoppdagelse

Eksterne systemer integreres med Odoo via XML-RPC eller JSON-RPC API. De kan spørre ir.model for å oppdage tilgjengelige modeller og deres struktur. API-modellen i Odoo eksponerer dette for introspeksjon.


5. Modulutvikling og Feilsøking

Utviklere bruker ir.model når de bygger moduler. De sjekker inherited_model_ids for å forstå Odoo-modellarv. De inspiserer field_id for å se alle Odoo-feltene på en modell.

Hvordan utviklere utvider denne modellen


Utviklere utvider sjelden ir.model direkte. I stedet jobber de med det når de definerer nye modeller. Modellregisteret oppdateres automatisk når du laster en modul.


Modellarv

Når du bruker _inherit = 'res.partner' i Python-koden din, oppdaterer Odoo ir.model-posten for res.partner. inherited_model_ids på din nye modells ir.model-post vil lenke til forelderen. Dette er Odoo-modellarv i aksjon. Den arvede modellen i Odoo holder registeret synkronisert.


Legge til Felter

Når du legger til nye Odoo-felter til en modell, oppretter Odoo ir.model.fields-poster. Disse lenker til ir.model via model_id-feltet. ir.model-posten selv blir ikke modifisert.


Python-utvidelser

Du overstyrer vanligvis ikke ir.model-metoder. Modellen er en del av kjerne-rammeverket. Hvis du trenger å tilpasse atferd, utvider du modellene som ir.model beskriver, ikke ir.model selv.


Odoo Studio

Odoo Studio oppretter ir.model og ir.model.fields poster når du bygger tilpassede modeller. Ingen kode nødvendig. Den midlertidige flagget skiller Odoo midlertidige modeller fra vanlige modeller. Abstrakte modeller (Odoo abstrakt modell) oppretter ikke ir.model-poster fordi de ikke har noen databasetabell.

Beste praksis


  • Bruk ir.model for introspeksjon og oppdagelse. Når du bygger integrasjoner, spør ir.model for å liste tilgjengelige modeller i stedet for å hardkode.
  • Bruk model-feltet for oppslag. Det er indeksert. Søk etter modellenavn når du trenger metadata for en spesifikk modell.
  • Sjekk inherited_model_ids når du bygger tilpassede moduler. Forstå arvkjeden før du utvider.
  • Bruk API-modellen i Odoo (XML-RPC eller JSON-RPC) for å lese ir.model. Unngå å endre den med mindre du bygger et Studio-lignende verktøy.
  • Bruk ir.model.fields for felt-nivå introspeksjon. field_id-relasjonen gir deg alle Odoo-feltene på en modell.

Vanlige feil


  • Endre ir.model-poster direkte. Registeret administreres av Odoo. Endringer kan bryte systemet eller bli overskrevet ved oppgradering.
  • Forveksle ir.model med Python-modellklassen. ir.model er databaseposten. Python-klassen er den faktiske modellen. De er relaterte, men forskjellige.
  • Anta at alle modeller har ir.model-poster. Odoo abstrakte modellklasser oppretter ikke databasetabeller eller ir.model-poster.
  • Glemmer at midlertidige modeller er midlertidige. Den midlertidige flagget betyr at Odoo midlertidige modelldata blir ryddet opp. Ikke bruk det for permanent data.
  • Spør om ir.model uten filtrering. En typisk Odoo-instans har hundrevis av modeller. Filtrer alltid etter modellenavn eller bruk søkedomener.

Konklusjon


ir.model-modellen er registeret over alle Odoo-modeller. Den lagrer metadata om hver modell i systemet. Å forstå feltene dens og hvordan den relaterer seg til ir.model.fields vil hjelpe deg med å navigere i Odoo-datastrukturen.


Enten du er en funksjonell konsulent som utforsker tekniske innstillinger eller en utvikler som bygger API-integrasjoner, vil en solid forståelse av ir.model spare tid og forhindre feil.

Trenger du hjelp med din Odoo-implementering?


Dasolo hjelper selskaper med å implementere, tilpasse og optimalisere Odoo. Vi spesialiserer oss på API-integrasjoner og Odoo-utvikling. Teamet vårt har dyp erfaring med Odoo-datastrukturen og modeller som ir.model.


Hvis du trenger hjelp med din Odoo-implementering, tilpassede moduler eller integrasjoner, er vi her for å hjelpe. Bestill en demo for å diskutere prosjektet ditt.

Forståelse av Odoo's Modellregister: ir.model Modellen
Dasolo 11. mars 2026
Share this post
Logg inn to leave a comment