- Odoo Development Cookbook
- Holger Brunn Alexandre Fayolle Daniel Reis
- 323字
- 2021-07-16 11:00:33
Using a float field with configurable precision
When using float fields, we may want to let the end user configure the precision that is to be used. The Decimal Precision Configuration module addon provides this ability.
We will add a Cost Price field to the Library Book model, with a user-configurable number of digits.
Getting ready
We will reuse the my_module
addon module from Chapter 3, Creating Odoo Modules.
How to do it…
We need to install the decimal_precision
module, add a "Usage" entry for our configuration, and then use it in the model field:
- Make sure the Decimal Accuracy module is installed; select Apps from the top menu, remove the default filter, search for the Decimal Precision Configuration app, and install it if it's not already installed:
- Activate the Developer Mode in the About dialog box, available within the ? icon in the menu bar at the top. This will enable the Settings | Technical menu.
- Access the Decimal Precision configurations. To do this, open the Settings top menu and select Technical | Database Structure | Decimal Accuracy. We should see a list of the currently defined settings.
- Add a new configuration, setting Usage to Book Price and choosing the Digits precision:
- Add the new dependency to the
__openerp__.py
manifest file. It should be similar to this:{ 'name': 'Chapter 03 code', 'depends': ['base', 'decimal_precision], 'data': ['views/library_book.xml'] }
- To add the model field using this decimal precision setting, edit the
models/library_book.py
file by adding the following:from openerp.addons import decimal_precision as dp # ... class LibraryBook(models.Model): # ... cost_price = fields.Float( 'Book Cost', dp.get_precision('Book Price))
How it works…
The get_precision()
function looks up the name in the Decimal Accuracy Usage field and returns a tuple representing 16-digit precision with the number of decimals defined in the configuration.
Using this function in the field definition, instead of having it hardcoded, allows the end user to configure it according to his needs.
- HTML5移動Web開發技術
- Python進階編程:編寫更高效、優雅的Python代碼
- Banana Pi Cookbook
- 3D少兒游戲編程(原書第2版)
- PhoneGap Mobile Application Development Cookbook
- QGIS:Becoming a GIS Power User
- Learning SciPy for Numerical and Scientific Computing(Second Edition)
- Learning Vaadin 7(Second Edition)
- MATLAB 2020從入門到精通
- 機器學習與R語言實戰
- ExtJS高級程序設計
- Lighttpd源碼分析
- Python極簡講義:一本書入門數據分析與機器學習
- JavaScript腳本特效編程給力起飛
- Building Slack Bots