Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
17454 Zobrazení

​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'],
})
Avatar
Zrušit
Nejlepší odpověď
  • 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


Avatar
Zrušit

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

Autor Nejlepší odpověď

Added the compute function


Avatar
Zrušit
Nejlepší odpověď

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

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
2
bře 17
5475
1
kvě 23
2561
1
dub 15
4946
2
úno 24
3639
2
čvc 22
7241