Enable Dark Mode!
By: Renu M

An Overview of Field Parameters in Odoo 17

Technical Odoo 17

Odoo, a powerful open-source business management software, offers a wide array of tools and features to streamline and customize your business processes. Among its versatile features are field parameters, which allow you to fine-tune how your data is stored, displayed, and manipulated within the system.
In this blog post, we will delve into the key field parameters in Odoo 17 and how they can be used to shape the behaviour of fields within your models. Field parameters in Odoo 17 are attributes assigned to fields defined within your models. These attributes provide control over the behaviour and characteristics of fields, including their appearance in the user interface, database storage, and more. Let's explore the essential field parameters and their functions:

1. String

The "String" parameter specifies the user-friendly name for a field. If not explicitly defined, Odoo will use the field's name as the label.
name = fields.Char(string="Name of the field")

2. Help

The "Help" parameter allows you to add tooltips to fields. These tooltips provide additional information to users in the user interface, aiding in the understanding of the field's purpose.
name = fields.Char(string="Name", help="Enter the Name")

3. Translate

"Translate" can be set to True to make a field translatable for different languages. This is useful when you need to present your application in multiple languages.
name = fields.Char(string="Name", translate=True)

4. Readonly

Setting "Readonly" to True makes the field read-only, preventing users from making edits. By default, this parameter is set to False.
name = fields.Char(string="Name", readonly=True)

5. Required

The "Required" parameter, when set to True, makes a field mandatory. Users must provide a value for this field.
name = fields.Char(string="Field name", required=True)

6. Store

The "Store" parameter is used to specify whether a field should be stored in the database. Most fields are stored by default, except computed fields.

7. Copy

This parameter determines whether the field's value should be copied when a record is duplicated. It's True by default for standard fields but False for some special fields.

8. Groups

You can use the "Groups" parameter to restrict field access to specific user groups, enhancing the security and access control of your application.
name = fields.Char(string='Name', groups="base.group_user")

9. Index

Indexing is a critical technique that plays a pivotal role in optimizing database performance within Odoo 17. It involves the creation of specialized database indexes on specific fields, significantly enhancing the efficiency of database queries, especially when dealing with large datasets. In essence, indexing functions like a well-organized catalogue, making it quicker to filter, sort, and search for data within your Odoo application. Let's explore the different aspects of indexing:
True or "btree": This is the default index type used for many2one relationships in Odoo. It provides efficient indexing for these relationships.
field_name = fields.Many2one('model.name', index=True)
"btree_not_null": This index type is similar to the "btree" index but excludes NULL values. It proves particularly valuable when a significant number of values in the field are NULL or when NULL values are infrequently searched for.
field_name = fields.Char(index="btree_not_null")
"gin" or "trigram": These index types leverage Generalized Inverted Indexing (GIN) with trigrams, and they are particularly suitable for full-text searches. They significantly improve search performance when dealing with textual data.
field_name = fields.Text(index="gin")
False or None: Setting the "index" attribute to False or None indicates that no index should be applied to the field. This is the default behavior in Odoo when the "index" attribute is not explicitly specified.
field_name = fields.Integer(index=False)

10. Default

The "Default" parameter allows you to set a default value for a field. This can be a static value or a callable function that computes the default value based on certain logic.

11. States

With the "States" parameter, you can control field behavior and visibility based on the current state of a record. You can specify attributes like "readonly," "required," and "invisible" for different states.
state = fields.Selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done')],
                        string='State', default='draft', states={'confirmed': [('readonly', True)], 'done': [('readonly', True)]})

12. Compute

The "Compute" attribute is used to define computed fields. Computed fields derive their values from other fields or custom Python logic. You can also use parameters like "precompute," "recursive," "inverse," "search," and "related" for more complex computed field setups.

13. Selection

This parameter defines a list of possible values for a field. You can specify these values as pairs (value, label), a model method, or a method name.

14. Selection_add

In the case of an overridden field, "Selection_add" extends the selection list by appending new values to the existing selection in a specific order.

15. Ondelete

The "Ondelete" parameter specifies a fallback method for fields with "Selection_add" that have been overridden. You can define actions like 'set null,' 'cascade,' 'set default,' 'set VALUE,' or a custom callable for handling these values during deletion.
In Odoo 17, field parameters offer extensive flexibility in managing your data. By using these parameters effectively, you can tailor your Odoo application to meet your business's unique needs. Whether you need to control field visibility, enforce data integrity, or optimize database performance, field parameters in Odoo give you the tools to achieve these goals. Understanding and harnessing these field parameters is essential for Odoo developers and administrators, as they play a pivotal role in configuring and customizing your Odoo applications.
Now that you have a solid understanding of the key field parameters in Odoo 17, you can leverage them to build more powerful and tailored applications that cater to your business requirements.

If you need any assistance in odoo, we are online, please chat with us.


Leave a comment




Cybrosys Technologies Pvt. Ltd.
Neospace, Kinfra Techno Park
Kakkancherry, Calicut
Kerala, India - 673635



Cybrosys Limited
Alpha House,
100 Borough High Street, London,
SE1 1LB, United Kingdom



Cybrosys Technologies Pvt. Ltd.
1st Floor, Thapasya Building,
Infopark, Kakkanad,
Kochi, India - 682030.



Cybrosys Techno Solutions
The Estate, 8th Floor,
Dickenson Road,
Bangalore, India - 560042

Send Us A Message