Hi,
I am new to Odoo. I have a requirement to create person model with date of birth. Can I use compute field for the person's age?
I haven't put the logic to count person's age from date of birth. Also I see that the physical table does not contain the compute field.
But when I tried to view the module I created, the age does not display number 30.
How to use the compute field so that the user don't have to input the age (auto calculate from date of birth) and everytime I view the record, the age calculate according to current date?
This is my view
<record model="ir.actions.act_window" id="person_list_action">
<field name="name">Person</field>
<field name="res_model">earth.person</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Create the first person
</p>
</field>
</record>
<!-- override the automatically generated list view for courses -->
<record model="ir.ui.view" id="person_tree_view">
<field name="name">person.tree</field>
<field name="model">earth.person</field>
<field name="arch" type="xml">
<tree string="Person Tree">
<field name="first_name"/>
<field name="last_name"/>
<field name="date_of_birth"/>
<field name="age"/>
</tree>
</field>
</record>
This is my model
class Person(models.Model):
_name = 'earth.person'
first_name = fields.Char(string="First Name", required=True)
last_name = fields.Char(string="Last Name")
date_of_birth = fields.Date()
age = fields.Integer(compute='_compute_person_age')
@api.depends('date_of_birth')
def _compute_person_age(self):
return 30