콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
20236 화면

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

아바타
취소
베스트 답변

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

아바타
취소
작성자 베스트 답변

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

아바타
취소
관련 게시물 답글 화면 활동
0
5월 20
2530
2
12월 24
14903
2
2월 25
7391
0
10월 20
3471
0
3월 24
1180