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
- Boekhouding
- Voorraad
- PoS
- Project
- MRP
Deze vraag is gerapporteerd
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
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!
Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!
AanmeldenGerelateerde posts | Antwoorden | Weergaven | Activiteit | |
---|---|---|---|---|
|
1
sep. 18
|
4588 | ||
|
1
jan. 17
|
5242 | ||
|
0
mrt. 25
|
1592 | ||
|
4
apr. 24
|
174505 | ||
|
2
mrt. 24
|
2091 |