I would like to include a related field from res.currency in a ORM model, but can't find any information how to deal with decimal precision in ORM.
exchange_rate = fields.Float('res.currency.rate',
'Exchange Rate', related='currency_id.rate', readonly=True)
When I open a view with the fields I get this error:
File "/opt/odoo/odoo-server/openerp/tools/float_utils.py", line 29, in _float_check_precision
return 10 ** -precision_digits
TypeError: bad operand type for unary -: 'str'
Would be glad to know a workaround to solve this problem.
as docs saids in
class openerp.fields.Float(string=None, digits=None, **kwargs)
The precision digits are given by the attribute
Parameters digits -- a pair (total, decimal), or a function taking a database cursor and returning a pair (total, decimal)
Your definition could be changed to this:
exchange_rate = fields.Float('res.currency.rate', 'Exchange Rate', related='currency_id.rate', readonly=True, digits=(16,2))
or you could use a managed decimal precision already defined like
import openerp.addons.decimal_precision as dp
exchange_rate = fields.Float('res.currency.rate', 'Exchange Rate', related='currency_id.rate', readonly=True, digits=dp.get_precision('Account') )
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 9/14/15, 5:10 AM|
|Seen: 1251 times|
|Last updated: 9/14/15, 10:42 AM|