Odoo Help


[8.0] How to translate fields.function with store to the new api

Christian Gilbert
on 7/1/15, 1:35 PM 2,212 views


I'm trying to translate this fields but I can't find documentation about Store parameter 

'total_deposit_amount': fields.function(




string='Total of deposit',


store={ 'account.dp.iva.line.tax': ( lambda self, cr, uid, ids, c={}: ids, ['amount'], 15 ) },


help="The total of the deposit"),

I have this

total_deposit_amount = fields.Float(compute="_get_total_deposit_amount_", inverse="_set_total_dpt", string='Total of deposit',

digits_compute=dp.get_precision('Deposit'),help="The total of the deposit")

Can you tell me how to translate de lambda expresion please

Christian Gilbert
on 7/2/15, 6:03 PM

lambda expression is just an function without name. So, you can make any function and call it.

Emipro Technologies Pvt. Ltd.
on 7/3/15, 12:59 AM


In new api you need to define @api.depends instead of the store parameter. Please have a look on the method of account.invoice to calculate all amounts.


@api.depends('invoice_line_ids.price_subtotal', 'tax_line_ids.amount', 'currency_id', 'company_id')

def _compute_amount(self):

    . . . .

This is in new api. Inside @api.depends you need to give the fields name. Odoo will manage calling of the method when value of the given field is changed. In given example invoice_line_ids is field of "account.invoice.line" and tax_line_ids is field of "account.invoice.tax" model.

In your case you need to define you function like...



def _get_total_deposit_amount_(self)

    . . . .

I hope you will convert correctly.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 7/1/15, 1:35 PM
Seen: 2212 times
Last updated: 7/3/15, 12:59 AM