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

​So I have a field which is being computed:

price_subtotal = fields.Monetary(compute='_compute_amount', string='Subtotal', readonly=True, store=True)


I have used the logger to make sure the fields are being computed on the fly however they aren't updating in the field view?

Edit: compute function
@api.depends('product_uom_qty', 'discount', 'price_unit', 'tax_id')
def _compute_amount(self):
for line in self:
price = line.price_unit * (1 - (line.discount or 0.0) / 100.0)
taxes = line.tax_id.compute_all(price, line.quote_id.currency_id, line.product_uom_qty, product=line.product_id, partner=line.quote_id.partner_shipping_id)
line.update({
'price_tax': sum(t.get('amount', 0.0) for t in taxes.get('taxes', [])),
'price_total': taxes['total_included'],
'price_subtotal': taxes['total_excluded'],
})
아바타
취소
베스트 답변
  • The only solution is to set store=False

EDIT: Actually there is a simple solution to achieve what we want: 

  • Computed field: store=False; make it invisible in the view.

  • Create a related field with store=True, related to the computed_field


아바타
취소

Should work well

I tried with the computed field with store=False & field present but invisible in the view and it seems to be enough.

I think that the important point is to have the @api.depends fields present in the view otherwize my impression is that the odoo js client ignores them

작성자 베스트 답변

Added the compute function


아바타
취소
베스트 답변

Can you please attach the compute function. Then it would be easy to suggest a solution. 

아바타
취소
관련 게시물 답글 화면 활동
2
3월 17
5353
1
5월 23
2438
1
4월 15
4857
2
2월 24
3480
2
7월 22
7065