官术网_书友最值得收藏!

  • Odoo Development Cookbook
  • Holger Brunn Alexandre Fayolle Daniel Reis
  • 291字
  • 2021-07-16 11:00:33

Adding a monetary field to a Model

Odoo has special support for monetary values related to a currency. Let's see how to use it in a Model.

Note

The Monetary field was introduced in Odoo 9.0 and is not available in previous versions. If you are using Odoo 8.0, the float field type is your best alternative.

Getting ready

We will reuse the my_module addon module from Chapter 3, Creating Odoo Modules.

How to do it…

The monetary field needs a complementary currency field to store the currency for the amounts.

The my_module already has a models/library_book.py defining a basic Model. We will edit this to add the needed fields:

  1. Add the field to store the currency that is to be used:
    class LibraryBook(models.Model):
        # ...
     currency_id = fields.Many2one(
     'res.currency', string='Currency')
    
  2. Add the monetary field to store our amount:
    class LibraryBook(models.Model):
        # ...
     retail_price = fields.Monetary(
     'Retail Price',
     # optional: currency_field='currency_id',
     )
    

Now, upgrade the addon module, and the new fields should be available in the Model. They won't be visible in views until they are added to them, but we can confirm their addition by inspecting the Model fields in Settings | Technical | Database Structure | Models.

How it works…

Monetary fields are similar to Float fields, but Odoo is able to represent them correctly in the user interface since it knows what their currency is through a second field for that purpose.

This currency field is expected to be named currency_id, but we can use whatever field name we like as long as it is indicated using the currency_field optional parameter. You might like to know that the decimal precision for the amount is taken from the currency definition (the decimal_precision field of the res.currency model).

主站蜘蛛池模板: 垣曲县| 宁化县| 上林县| 新宁县| 汉中市| 民勤县| 巴中市| 普宁市| 临高县| 华亭县| 剑河县| 介休市| 富蕴县| 台中县| 措勤县| 原平市| 郴州市| 武川县| 沙湾县| 呈贡县| 长海县| 韩城市| 瓦房店市| 潮安县| 广饶县| 化州市| 安仁县| 敦煌市| 澄江县| 治县。| 碌曲县| 油尖旺区| 施秉县| 潮州市| 商南县| 平原县| 浮山县| 岳阳市| 松潘县| 永宁县| 高唐县|