Automatic & Reserved Fields in Odoo 18
Introduction
In Odoo 18 module development, certain fields are categorized as Automatic or Reserved. These fields are either automatically created based on the model's configuration or predefined by the system for specific purposes. They help developers build efficient and flexible enterprise solutions without needing to manage these fields manually.
Automatic fields
Automatic fields in Odoo are fields managed or generated automatically by the system based on the model's requirements and configurations. These fields are typically handled by the Object Relational Mapping (ORM), which acts as the interface between the programming language and the database.
* id
At the core of Odoo's record management lies the id field, which serves as the primary identifier for each database entry. This system-managed unique identifier remains permanently linked to its record and can be observed in the record's URL pathway when operating in debug mode. The immutable nature of this field ensures consistent record tracking throughout the system's lifecycle.
* create_date
Every record's birth moment is captured through the create_date field, which stores an automated timestamp of when the entry first came into existence. This system-controlled field maintains its integrity by remaining unalterable, as it serves as a historical reference point for record creation timing.
* write_date
Record modification timing is precisely documented through the write_date field, which automatically updates its timestamp whenever changes occur in any field within the record. This read-only attribute serves as a reliable indicator of when the latest modifications were implemented, providing crucial temporal tracking for record changes.
* write_uid
Change management tracking is enhanced through the write_uid field, another Many2one relation linked to 'res.users'. This automated system keeps tabs on who last modified the record, proving essential for audit trails and access control implementation. Its significance extends to debugging processes and user accountability tracking, making it a vital tool for system administration and security monitoring.
* log_access
System-wide metadata tracking is controlled through the log_access attribute, which determines the automatic logging behavior for access-related information. When active, this model-level setting ensures the automatic inclusion of creation and modification tracking fields (create_uid, create_date, write_uid, write_date) in the database structure. Developers maintain control over this feature through a simple boolean setting, where log_access = False disables the automatic tracking mechanism for specific models.
Reserved fields
Reserved fields are special attributes that Odoo reserves for specific system functionalities. Unlike standard custom fields, these are deeply integrated into the Odoo framework and serve predefined purposes. They cannot be repurposed without maintaining their original functional intent.
* name
In the Odoo ecosystem, the name field serves as the primary identifier and default representative for model definition. Functioning as a critical attribute across diverse models, this field provides the textual representation that users encounter when interacting with records. Whether displayed in many2one relationship fields, comprehensive lists, or detailed form views, the name field acts as the primary visual and referential element for record identification.
* active
Representing a powerful boolean configuration within Odoo's field management, the active field enables comprehensive record management through archiving and deactivation capabilities. When set to False, this field triggers a system-wide visibility modification, rendering the record effectively invisible across most standard views and reports. Despite its hidden status, the record persists within the database infrastructure, allowing users the flexibility to retrieve and restore archived data at their discretion. This mechanism essentially creates a soft deletion approach, maintaining data integrity while providing a "trash" or archival functionality without permanently removing the record from the system's memory.
* parent_id
The parent_id field serves as a foundational element for constructing intricate hierarchical data structures within Odoo models. By implementing a self-referencing Many2one relationship, this field enables records to establish sophisticated parent-child connections within the same model. This mechanism allows for the creation of complex, nested organizational structures, permitting records to reference and link to other records of identical model type, thereby supporting intricate relationship mappings and hierarchical data representations.
* parent_path
Complementing the parent_id field, the parent_path serves as an intelligent optimization mechanism for managing hierarchical data relationships. This field functions as a comprehensive string representation that encapsulates the entire ancestral lineage of a record, storing the complete hierarchical trajectory from the topmost parent to the current record. By maintaining this detailed path information, Odoo significantly enhances the performance and efficiency of hierarchical data operations, enabling rapid and streamlined searching, filtering, and traversal of nested record structures with minimal computational overhead.
* state
The state field represents a sophisticated tracking mechanism within Odoo's workflow management system, enabling comprehensive monitoring of a record's progression through various operational stages. Strategically designed as a selection field, it captures the nuanced lifecycle transitions of different business documents. By mapping discrete values to specific phases, this field provides a dynamic mechanism for documenting and visualizing the journey of records across complex business processes. In practical applications such as sales orders, purchase orders, and invoices, the state field serves as a critical navigation tool, meticulously tracking each record's trajectory from initial creation through various intermediary stages to ultimate resolution or cancellation, thereby offering real-time insights into the document's current status and historical progression.
* company_id
In the complex landscape of multi-company environments, the company_id field emerges as a crucial architectural component for data segregation and organizational management. This reserved field functions as a precise linkage mechanism, enabling individual records to be meticulously associated with their corresponding corporate entity. Implemented as a Many2one reference field connecting to the 'res.company' model, it ensures that each record maintains a singular, unambiguous company association from the existing organizational landscape. By constraining records to a single company reference, this field provides a robust framework for maintaining clear boundaries, enabling granular access control, and supporting sophisticated multi-company operational strategies within the Odoo ecosystem.
Conclusion
Automatic and Reserved fields in Odoo are essential for managing data and maintaining system integrity. These fields help developers build scalable, interconnected business solutions while following Odoo’s core design principles. They are used to track record lifecycles, manage relationships, and ensure consistent data handling. By using these fields effectively, developers can maintain data accuracy, improve system performance, and create flexible applications that meet complex business needs. Overall, these fields make Odoo a powerful and responsive platform for managing advanced business processes.
If you are looking for an ERP implementation partner with diverse industry experience feel free to contact us. We have proven track record of successful implementations across various sectors including Odoo for Manufacturing, Odoo for Trading, Odoo for FMCG, Odoo for Oil & Gas, Odoo for Diary, Odoo for Pharma, Odoo for Cosmetic Clinic, Odoo for Contracting Companies, Odoo for HVAC, Odoo for Logistics, Odoo for Automobile, Odoo for Laundry, Odoo for Field Service, Odoo for E-Commerce & many more