Help

1

Computed fields clarification

Avatar
Nicolás Mena

I'm creating a record through a RPC call and want to calculate some fields on the model using the option store=True,  my question is: 


If I use the store=True option the field it's computed everytime i open that record or just the first time? 


Can't find a clear explanation about that in the documentation, hope you can help my about this.

Regards



Avatar
Discard
1 Answer
3
Avatar
Andre de Kock
Best Answer

Whether stored or not stored, computed fields have a compute method. The annotation on the compute method specifies when the re-calculation should run, depending on if it's stored or not.

For example (stored):

@api.depends('name', 'surname')
def compute_display_name(self):
# This will be called every time the name or surname field changes
pass

display_name = fields.Char(compute=compute_display_name, store=True)

For example (not stored):

def compute_display_name(self):
# This will be called every time the field is viewed
pass

display_name = fields.Char(compute=compute_display_name, store=False)
2 Comments
Avatar
Discard
Avatar
Nicolás Mena
-

Thanks for your answer

Avatar
Hilar AK
-

you should make sure if the function will be invoked if the flag store=true with the decorator depends. Just check