In my module I have an entity "Person" with two fields "date_of_birth" (Date) and "age" (Integer). How can I get the age of a Person from the date of birth?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Contabilidad
- Inventario
- PoS
- Project
- MRP
Se marcó esta pregunta
Hi Ernesto:
Make "age" a computed field with the following settings:
Readonly = True
Stored = False
Copied = False
Depends on: date_of_birth
for record in self: if record.date_of_birth:
today = datetime.date.today() # Check if the date has passed this year if today.strftime("%m%d") >= record.date_of_birth.strftime("%m%d"):
record['age'] = today.year - record.date_of_birth.year
else: record['age'] = today.year - record.date_of_birth.year - 1
else:
record['age'] = 0
Hi Ernesto:
You can do like this:
from dateutil.relativedelta import relativedelta
age = fields.Integer(string="Age", compute="_calculate_age")
@api.depend('date_of_birth')
def _calculate_age(self):
if self.date_of_birth:
d1 = self.date_of_birth
d2 = datetime.date.today()
self.age = relativedelta(d2, d1).years
¿Le interesa esta conversación? ¡Participe en ella!
Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.
InscribirsePublicaciones relacionadas | Respuestas | Vistas | Actividad | |
---|---|---|---|---|
|
1
sept 18
|
4472 | ||
|
1
ene 17
|
5157 | ||
|
0
mar 25
|
1391 | ||
|
4
abr 24
|
174302 | ||
|
2
mar 24
|
1969 |