In OpenERP first, we create existing module and then creates an object in own module and then creates fields and function in module and relate it to the fields, this fields computes all related records and saves it in a database.
Here computed field is a field whose value is computed instead of simply being read from the database. To define such a field, you can simply provide a value for the attribute compute and get result.
The attributes that are specific to computed fields are given below.
For example you can see below code.
class test(osv.osv):
@api.depends('name')
def _compute_upper(self):
for rec in self:
rec.upper = rec.name.upper() if rec.name else False
def _inverse_upper(self):
for rec in self:
rec.name = rec.upper.lower() if rec.upper else False
def _search_upper(self, operator, value):
if operator == 'like':
operator = 'ilike'
return [('name', operator, value)]
_columns = {
upper = fields.Char(compute='_compute_upper',
inverse='_inverse_upper',
search='_search_upper')
}
test()
In above function we decorator the openerp.api.depends() function must be applied on the computed fields and dependencies are used to determine when to recompute the field, and recomputation is jenerate the database consistency.
Note-The search method is invoked when processing domains before doing an actual search on the model. It must return a domain equivalent to the condition: field operator value
.
0 Comment(s)