Overslaan naar inhoud
Menu
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Deze vraag is gerapporteerd
1 Beantwoorden
6294 Weergaven

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:

openerp.api.depends(*args)
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')

@api.one
@api.depends(my_function)
def _compute_pname(self):
    if self.partner_id.is_company:
        self.pname = (self.partner_id.name or "").upper()
    else:
        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?.


Avatar
Annuleer
Beste antwoord

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.one
@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()
    else:
        self.pname = self.partner_id.namedef my_function(self):
 
def my_function(self):
    return ['partner_id.name']
Avatar
Annuleer
Gerelateerde posts Antwoorden Weergaven Activiteit
1
mrt. 17
3398
2
apr. 18
12474
2
dec. 22
14741
1
nov. 21
4848
0
jan. 21
2240