Skip to Content

Forstå Odoo's Model Registry: En Guide Til ir.model Modellen

En komplet guide til metadata-modellen, der definerer hver Odoo-model i systemet
11. marts 2026 af
Forstå Odoo's Model Registry: En Guide Til ir.model Modellen
Dasolo
| Ingen kommentarer endnu

Introduktion


I Odoo definerer modeller, hvordan data er struktureret og gemt i databasen. Hver enkelt del af forretningsdata, du arbejder med, fra salgsordrer til fakturaer til kontakter, findes i en model.


At forstå Odoo-modeller er essentielt for både udviklere og funktionelle konsulenter. Modellerne er fundamentet for Odoo's dataarkitektur. De definerer Odoo-felter, relationer og forretningslogik.


Men hvor gemmer Odoo information om hver model i systemet? Svaret er ir.model. Denne model i Odoo er registret, der holder metadata om alle andre modeller. Uanset om du bygger brugerdefinerede moduler, udforsker API'en eller fejlfinder i Odoo, vil du støde på ir.model.

Hvad er ir.model-modellen


Modellen ir.model er metadata registreringssystemet for alle Odoo-modeller. Den gemmer én post pr. model i systemet. Når du definerer en ny model i Python eller opretter en via Odoo Studio, opretter eller opdaterer Odoo en ir.model-post.


Denne model i Odoo bruges af basismodulet. Den er en del af kernerammen. Hver Odoo-model, uanset om det er en almindelig model, en Odoo abstrakt model eller en Odoo transient model, har en tilsvarende ir.model-post.


Modellen er defineret i basismodulet. Den er nært relateret til ir.model.fields, som gemmer metadata om hvert Odoo-felt på hver model. Sammen danner ir.model og ir.model.fields ryggraden i Odoos introspektions- og refleksionskapaciteter.


Udviklere bruger ir.model, når de har brug for at liste tilgængelige modeller, tjekke modelarv eller bygge dynamiske værktøjer, der arbejder med enhver model. API-modellen i Odoo eksponerer ir.model gennem XML-RPC og JSON-RPC.

Nøglefelter i modellen


Her er de vigtigste Odoo-felter i ir.model-modellen. At forstå disse vil hjælpe dig med at arbejde effektivt med modelregistreringen.


1. navn

Type: Char. Dette felt gemmer den menneskeligt læselige beskrivelse af modellen. Det er oversætteligt og vises i de tekniske indstillinger og i udviklerværktøjer. Det er den label, du ser, når du gennemser modeller.


2. model

Type: Char. Det tekniske navn på modellen. Dette er den streng, du bruger i Python-kode, såsom res.partner eller sale.order. Det er påkrævet og indekseret for hurtige opslag.


3. info

Type: Text. Yderligere information eller noter om modellen. Bruges til dokumentation og internt brug. Kan være tomt for de fleste modeller.


4. tilstand

Type: Selection. Angiver, om modellen er base (fra Odoo-moduler) eller manuel (oprettet via Odoo Studio eller brugerdefineret kode). Base-modeller er beskyttede. Manuelle modeller kan ændres mere frit.


5. transient

Type: Boolean. Når sand, er denne model en Odoo transient model. Transiente modeller er midlertidige. Deres poster bliver automatisk ryddet op. Bruges til guider og midlertidige data.


6. field_id

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


7. access_ids

Type: One2many (ir.model.access). Adgangsrettigheder for denne model. Hver post definerer, hvilke grupper der kan oprette, læse, opdatere eller slette poster. Bruges til sikkerhed.


8. rule_ids

Type: One2many (ir.rule). Postregler for denne model. Postregler begrænser, hvilke poster brugere kan se. Bruges til række-niveau sikkerhed.


9. inherited_model_ids

Type: Many2many (ir.model). Forældre modeller ved brug af Odoo modelarv. Når du arver en model i Odoo, linker den underliggende model til sin forælder her. Dette er Odoo arve model i aktion.


10. modules

Type: Char. Et beregnet felt, der viser de moduler, hvor denne model er defineret. For modeller, der er udvidet af flere moduler, vises alle af dem. Nyttigt til at forstå afhængigheder.


11. sort

Type: Integer. Visningsrækkefølge for modellen i menuen for tekniske indstillinger. Lavere værdier vises først. Bruges til at organisere modellisten.


12. constrains

Type: Text. Python begrænsningsdefinitioner. Gemmer koden til @api.constrains dekorerer. Bruges, når modellen har brugerdefineret valideringslogik.


13. post_constrains

Type: Text. Python post-begrænsningsdefinitioner. Ligner constrains, men til post-validering. Bruges til avancerede valideringsscenarier.


14. sql_constraints

Type: Text. SQL begrænsningsdefinitioner. Database-niveau begrænsninger som unikke indekser. Sikrer dataintegritet på databaseniveau.


15. view_ids

Type: One2many (ir.ui.view). Beregnet felt, der viser visninger, der er knyttet til denne model. Bruges til introspektion og visningsstyring.


16. record_count

Type: Integer. Beregnet felt, der viser antallet af poster i denne model. Nyttig til rapportering og forståelse af, hvor meget data en model indeholder.


17. display_name

Type: Char. Beregnet felt til visningsrepræsentation. Bruges, når posten vises i lister og relationer. Kombinerer typisk navn og model.


18. create_date

Type: Datetime. Gemmer dato og tidspunkt for, hvornår posten blev oprettet. Administreres automatisk af Odoo.


19. create_uid

Type: Many2one (res.users). Den bruger, der oprettede posten. Bruges til revision og sporing.


20. write_date

Type: Datetime. Gemmer dato og tidspunkt for den seneste ændring. Også administreret automatisk.


21. write_uid

Type: Many2one (res.users). Den bruger, der sidst ændrede posten. Bruges til revision.


22. active

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


23. id

Type: Integer. The database ID. Unique identifier for each ir.model record. Used when referencing the model in API calls.


24. restrict_functionality

Type: Boolean. When True, this model has restricted functionality in certain Odoo editions. Used for enterprise vs community differentiation.


25. is_mail_thread

Type: Boolean. Indicates whether the model is a mail thread. Mail thread models have chatter, messages, and followers. Used for models that support discussions.


26. is_mail_activity

Type: Boolean. Indicates whether the model supports activities. Activity models have the activity planner and next action tracking.

Hvordan denne model bruges i forretningsarbejdsgange


1. Technical Settings and Configuration

Administrators use the Technical Settings menu to browse models. The ir.model records define what appears in that list. Each model shows its name, description, and field count.


2. Access Rights Management

Når man konfigurerer sikkerhed, tildeler administratorer adgangsrettigheder til grupper. access_ids på ir.model definerer, hvilke grupper der kan oprette, læse, opdatere eller slette poster for hver model.


3. Odoo Studio Tilpasning

Når brugere opretter brugerdefinerede modeller i Odoo Studio, opretter Odoo nye ir.model-poster med status manual. felt_id-relationen udfyldes med de brugerdefinerede Odoo-felter.


4. API og Integrationsopdagelse

Eksterne systemer integrerer med Odoo via XML-RPC eller JSON-RPC API. De kan forespørge ir.model for at opdage tilgængelige modeller og deres struktur. API-modellen i Odoo eksponerer dette til introspektion.


5. Moduludvikling og Fejlfinding

Udviklere bruger ir.model, når de bygger moduler. De tjekker inherited_model_ids for at forstå Odoo-modelarv. De inspicerer field_id for at se alle Odoo-felter på en model.

Hvordan udviklere udvider denne model


Udviklere udvider sjældent ir.model direkte. I stedet arbejder de med det, når de definerer nye modeller. Modelregistret opdateres automatisk, når du indlæser et modul.


Modelarv

Når du bruger _inherit = 'res.partner' i din Python, opdaterer Odoo ir.model-posten for res.partner. inherited_model_ids på din nye models ir.model-post vil linke til forælderen. Dette er Odoo-modelarv i aktion. Den arvede model i Odoo holder registret synkroniseret.


Tilføjelse af Felter

Når du tilføjer nye Odoo-felter til en model, opretter Odoo ir.model.fields-poster. Disse linker til ir.model via model_id-feltet. ir.model-posten selv ændres ikke.


Python Extensions

Du overskriver typisk ikke ir.model metoder. Modellen er en del af kernerammen. Hvis du har brug for at tilpasse adfærd, udvider du de modeller, som ir.model beskriver, ikke ir.model selv.


Odoo Studio

Odoo Studio opretter ir.model og ir.model.fields poster, når du bygger tilpassede modeller. Ingen kode kræves. Den transient flag adskiller Odoo transient model fra almindelige modeller. Abstrakte modeller (Odoo abstrakt model) opretter ikke ir.model poster, fordi de ikke har en database tabel.

Bedste praksis


  • Brug ir.model til introspektion og opdagelse. Når du bygger integrationer, forespørg ir.model for at liste tilgængelige modeller i stedet for at hardkode.
  • Brug modelfeltet til opslag. Det er indekseret. Søg efter modelnavn, når du har brug for metadata for en specifik model.
  • Tjek inherited_model_ids, når du bygger tilpassede moduler. Forstå arve kæden, før du udvider.
  • Brug API-modellen i Odoo (XML-RPC eller JSON-RPC) til at læse ir.model. Undgå at ændre det, medmindre du bygger et Studio-lignende værktøj.
  • Brug ir.model.fields til felt-niveau introspektion. Field_id relationen giver dig alle Odoo felter på en model.

Almindelige fejl


  • Ændring af ir.model poster direkte. Registreringen styres af Odoo. Ændringer kan bryde systemet eller blive overskrevet ved opgradering.
  • Forveksle ir.model med Python modelklassen. ir.model er databaseposten. Python-klassen er den faktiske model. De er relaterede, men forskellige.
  • Antage at alle modeller har ir.model poster. Odoo abstrakte modelklasser opretter ikke databaser tabeller eller ir.model poster.
  • At glemme, at transient modeller er midlertidige. Det transient flag betyder, at Odoo transient modeldata bliver ryddet op. Brug det ikke til permanente data.
  • At forespørge ir.model uden filtrering. En typisk Odoo-instans har hundreder af modeller. Filtrer altid efter modelnavn eller brug søgedomæner.

Konklusion


ir.model modellen er registreringen af alle Odoo-modeller. Den gemmer metadata om hver model i systemet. At forstå dens felter og hvordan den relaterer til ir.model.fields vil hjælpe dig med at navigere i Odoo dataarkitekturen.


Uanset om du er en funktionel konsulent, der udforsker tekniske indstillinger, eller en udvikler, der bygger API-integrationer, vil en solid forståelse af ir.model spare tid og forhindre fejl.

Har du brug for hjælp til din Odoo-implementering?


Dasolo hjælper virksomheder med at implementere, tilpasse og optimere Odoo. Vi specialiserer os i API-integrationer og Odoo-udvikling. Vores team har dyb erfaring med Odoo dataarkitekturen og modeller som ir.model.


Hvis du har brug for hjælp til din Odoo-implementering, tilpassede moduler eller integrationer, er vi her for at hjælpe. Book en demo for at diskutere dit projekt.

Forstå Odoo's Model Registry: En Guide Til ir.model Modellen
Dasolo 11. marts 2026
Del dette indlæg
Log ind for at skrive en kommentar