Odoo 19.0 Community · Persistent

ir.model.fields: fields, relations and API

The ir.model.fields model ("Fields") is a persistent model declared by the Base module, then extended by 3 other modules. It exposes 51 fields, 45 of them declared directly on the model; 21 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.

Model identity

Technical name
ir.model.fields
Label
Fields
Type
Persistent (models.Model)
SQL table
ir_model_fields
Origin module
Base (base)
Extended by
mail, base_sparse_field, website
Default order (_order)
name, id
Display field (_rec_name)
field_description

Model fields

45 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

51 of 51 fields shown

Technical nameLabelTypeDetails
column1Column 1

Column referring to the record in the model table

char
column2Column 2

Column referring to the record in the comodel table

char
company_dependentCompany Dependent

Whether values for this field is company dependent

boolean
read-only
computeCompute

Code to compute the value of the field. Iterate on the recordset 'self' and assign the field's value: for record in self: record['size'] = len(record.name) Modules time, datetime, dateutil are available.

text
copiedCopied

Whether the value is copied when duplicating a record.

boolean
computed, stored
currency_fieldCurrency field

Name of the Many2one field holding the res.currency

char
dependsDependencies

Dependencies of compute method; a list of comma-separated field names, like name, partner_id.name

char
domainDomain

The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]

char
field_descriptionField Labelchar
requiredtranslatable
group_expandExpand Groups

If checked, all the records of the target model will be included in a grouped result (e.g. 'Group By' filters, Kanban columns, etc.). Note that it can significantly reduce performance if the target model of the field contains a lot of records; usually used on models with few records (e.g. Stages, Job Positions, Event Types, etc.).

boolean
groupsGroupsmany2many
helpField Helptext
translatable
indexIndexedboolean
modelModel Name

The technical name of the model this field belongs to

char
required
model_idModel

The model this field belongs to

many2one
required
modulesIn Apps

List of modules in which the field is defined

char
computed
nameField Namechar
required
on_deleteOn Delete

On delete property for many2one fields

selection

Values: cascade (Cascade), set null (Set NULL), restrict (Restrict)

readonlyReadonlyboolean
relationRelated Model

For relationship fields, the technical name of the target model

char
relation_fieldRelation Field

For one2many fields, the field on the target model that implement the opposite many2one relationship

char
relation_field_idRelation fieldmany2one
computed, stored
relation_tableRelation Table

Used for custom many2many fields to define a custom relation table name

char
requiredRequiredboolean
sanitizeSanitize HTMLboolean
sanitize_attributesSanitize HTML Attributesboolean
sanitize_formSanitize HTML Formboolean
sanitize_overridableSanitize HTML overridableboolean
sanitize_styleSanitize HTML Styleboolean
sanitize_tagsSanitize HTML Tagsboolean
selectableSelectableboolean
selectionSelection Options (Deprecated)char
computed
selection_idsSelection Optionsone2many

inverse: field_id

serialization_field_idSerialization Field

If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.

many2one

added by Sparse Fields (base_sparse_field)

sizeSizeinteger
stateTypeselection
requiredread-only

Values: manual (Custom Field), base (Base Field)

storeStored

Whether the value is stored in the database.

boolean
strip_classesStrip Class Attributeboolean
strip_styleStrip Style Attributeboolean
trackingEnable Ordered Tracking

If set every modification done to this field is tracked. Value is used to order tracking values.

integer

added by Discuss (mail)

translateTranslatable

Whether values for this field can be translated (enables the translation mechanism for that field)

selection

Values: standard (Translate as a whole), html_translate (Translate HTML terms), xml_translate (Translate XML terms)

ttypeField Typeselection
required

Values computed at runtime

website_form_blacklistedBlacklisted in web forms

Blacklist this field for web forms

boolean

added by Website (website)

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.

curl
curl -X POST "https://your-instance.odoo.com/json/2/ir.model.fields/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["field_description","model","model_id","name","state"],"limit":5}'
Python (requests)
import requests

BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}

res = requests.post(
    f"{BASE_URL}/ir.model.fields/search_read",
    headers=headers,
    json={"domain": [], "fields": ["field_description","model","model_id","name","state"], "limit": 5},
)
res.raise_for_status()
print(res.json())
  • External API access requires Odoo's Custom plan.
  • XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
  • The access rights and record rules of the key's user apply.

Cite this tool

Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.

<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/ir-model-fields">ir.model.fields (Odoo 19.0)</a>

Sources

Data verified on September 23, 2026 · Odoo 19.0 Community

Have an Odoo project, or want to put your ERP to work with AI? Let's talk

Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.