Field Attributes
Attribute
Attributes are the properties. Every object has some attributes. In Odoo, each model, field, etc., has some properties that are attributes. Here we will be discussing some model attributes.
The most common attributes for a model are String, Required, Default, Readonly, Help, Index, etc.
String
The common attribute used for every field is String.
name = fields.Char(string="Field name")
Here, “name” is the variable name, “Char” is the field type, and string is the attribute. The string values are always added in single or double quotes. That value will be shown on the UI.
Required
By default, required is false. We can add required=True, which will make them as mandatory field
name = fields.Char(string="Field name", required=True)
Values that can be given to required fields are True or False.
Help
Provides help tooltips for users in the UI.
name = fields.Char(string="Name", help="Enter the description")
Here, I have given the help attribute to the name field.
Index
Requests that Odoo creates a Database Index on the column.
name = fields.Char(string="Record name", index=True)
The values that can be given to the index attribute are True or False. By default, the value is False.
Default
We can assign default values for the fields by using the default attributes.
name = fields.Char(string="Field name", default='John')
The default value of the name field will be the value of the default.
Readonly
If we make a field as a read-only field, then we cannot change the field value manually.
name = fields.Char(string="Name", readonly=True)
Readonly has two values, True and False, readonly=True means that the value of the field cannot be changed.
Translate
When the translate attribute is set to true, it makes the field translatable. Depending on the user interface language, it can hold different values.
name = fields.Char(string="Name", translate=True)
Groups
It is used to make the field only available for some user groups.
name = fields.Char(string="Name", groups=”base.user_group”)
States
It helps the user interface to assign value for the necessary, readonly, and invisible attributes dynamically based on the state field's value.