# calculated field in form

By
Tomasz Serwanski
on 11/7/16, 3:26 PM 2,587 views

hello,

trivial question came to me, but - shame on me - I was not able to provide simple answer; considering I have two fields in form:

<group col="2">

<field name="x_po"/><newline/>

<field name="x_sz"/><newline/>

</group>

is there a simple way to add third field, which will show sum of above? something like "x_po+x_sz"?

regards

Tomasz

#### Hilar AK

--Hilar AK--
5160
| 5 4 8
India
--Hilar AK--
##### http://stackoverflow.com/users/7561347/burmese-pythisQoura:                https://www.quora.com/profile/Hilar-Ak-1
Hilar AK
On 11/7/16, 11:52 PM

Make the third field as compute field

in your script just compute the total of two fields and return the value

if you need to display the total sum you just need to give sum="thirdfield" in your tree view

` @api.one def _get_total(self):        try:         self.thirdfield = self.first + self.second        except:             raise "here add your exceptions"             thirdfield = fields.Float(compute='_get_total', string="")`

don't forget to close try

Have an upvote

GLOBAL CREATIVE CONCEPTS TECH CO LTD, Shameem Babu @ iWesabe
on 11/8/16, 12:01 AM

#### Ameera PP

--Ameera PP--
1240
| 5 4 7
Bangalore, India
--Ameera PP--

Ameera PP
On 11/8/16, 12:01 AM

create a new field x_po_plus_x_sz

@api.onchange('x_po','x_sz')

def getsum_x_po_x_sz(self):
if self.x_po and self.x_sz:
self.x_po_plus_x_sz=self.x_po + self.x_sz

Tomasz Serwanski
On 11/8/16, 10:52 AM

hello,

thank you for answers; I had hope it is to be done inside form view - but I guess code as above is to be added somewhere else, am I right? if yes - sorry for asking - where to insert code as above:

---

@api.one

def _get_total(self):

try:

self.thirdfield = self.first + self.second

thirdfield = fields.Float(compute='_get_total', string="")

---

regards

Tomasz

In your model, ie where you defined those fields or by inheriting the parent model,use the function

Hilar AK
on 11/9/16, 1:45 AM

#### Axel Mendoza

--Axel Mendoza--
12940
| 7 8 8
Camaguey, Cuba
--Axel Mendoza--

DevOps - Full stack - Software Architect - Developer - Technology Integrator

I could help you to develop anything and solve complex problems based on technologies, integrations and tricky stuffs mostly in Python with OpenERP/Odoo, Zato, Django and many others frameworks programming languages and technologies.

I offers consulting services to anyone with an unanswered questions or needs for customizations. Think about it, maybe it's better to have an expert to solve your issues and projects than having a full-time employee trying to understand what to do and how

Reach me at aekroft@gmail.com

Axel Mendoza
On 11/8/16, 1:23 AM

Hi Tomasz

You need to add a calculated field that compute the calculation and if you wanna make it more dynamically you could add also an onchange for the source field for the sum to provide the result without the need of saving the form

https://www.odoo.com/documentation/10.0/reference/orm.html#fields

Faycel Gsouma
On 11/8/16, 5:57 AM

You need to make a compute field for the third one with an onchange annotationthirdfield = fields.Float(compute='_compute_sum', string="SUM")

@api.onchange('x_po','x_sz')

def _compute_sum(self):

self.thirdfield = self.x_po + self.x_sz

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.

1 follower(s)

### Stats

 Asked: 11/7/16, 3:26 PM Seen: 2587 times Last updated: 6/8/17, 11:03 AM