Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
20239 Widoki

@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.

Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
Autor Najlepsza odpowiedź

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

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
0
maj 20
2537
2
gru 24
14904
2
lut 25
7392
0
paź 20
3471
0
mar 24
1182