Odoo Help


Odoo 8 ORM API - Passing a function to depends decorator

Eduardo BP
on 6/17/15, 11:26 AM 1,401 views

Hi Oddoers,

I was reading the documentation about the depends decorator of the ORM API and I don't understand the following statement written in the documentation:

One may also pass a single function as argument. In that case, the dependencies are given by calling the function with the field's model.

I suposse that it means that I can use a name function as an argument in *args, as that this function returns the dependencies.

For example:

pname = fields.Char(compute='_compute_pname')

def _compute_pname(self):
    if self.partner_id.is_company:
        self.pname = (self.partner_id.name or "").upper()
        self.pname = self.partner_id.name

def my_function(self): return ???

What should my_function return?. Should it return the dependencies into a list or into another kind of data structure type?.

Nabeen Najeeb
On 3/14/18, 6:45 AM

Just return the field names that your computed fields depends on as a list of strings. 

Quoting From your example 

pname = fields.Char(compute='_compute_pname')

@api.depends(lambda self: self.my_function())
def _compute_pname(self):
    if self.partner_id.is_company:
        self.pname = (self.partner_id.name or "").upper()
        self.pname = self.partner_id.namedef my_function(self):
def my_function(self):
    return ['partner_id.name']

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 6/17/15, 11:26 AM
Seen: 1401 times
Last updated: 3/14/18, 6:45 AM