Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
2 Risposte
20517 Visualizzazioni

@api.depends("product_tmpl_id")

def _computeBOMLine(self):

for record in self:

bom_lines = record.product_tmpl_id.bom_ids.mapped("bom_line_ids").filtered(lambda x: record.id in x.bom_product_template_attribute_value_ids.ids)

if any(bom_lines):

record.computed_bom_line_id = bom_lines[0].id

else:

record.computed_bom_line_id = False


computed_bom_line_id = fields.Many2one("mrp.bom.line",compute="_computeBOMLine", store=True)


Compute method is not getting called, unless I remove store attribute nothing happens.

Avatar
Abbandona
Risposta migliore

Hi,
If you have a compute field in your model and if you give store=True for the field, the field value will not get recomputed if proper depends is not given for the compute function. As the compute function is not getting recomputed you will have wrong value in the field.

See:-  Why Stored Computed Fields Are Not Recomputing in Odoo


Thanks

Avatar
Abbandona
Autore Risposta migliore

Hi,

yes It was related to store=True. I had to remove it since I couldn't figure out any other hook point to trigger it.


Thanks for the response.


Regards,

Sunil

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
0
mag 20
2708
2
dic 24
15109
2
feb 25
7601
0
ott 20
3574
0
mar 24
1291