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:
- ลูกค้าสัมพันธ์
- e-Commerce
- ระบบบัญชี
- สินค้าคงคลัง
- PoS
- Project
- MRP
คำถามนี้ถูกตั้งค่าสถานะ
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
สนุกกับการพูดคุยนี้ใช่ไหม? เข้าร่วมเลย!
สร้างบัญชีวันนี้เพื่อเพลิดเพลินไปกับฟีเจอร์พิเศษและมีส่วนร่วมกับคอมมูนิตี้ที่ยอดเยี่ยมของเรา!
ลงชื่อRelated Posts | ตอบกลับ | มุมมอง | กิจกรรม | |
---|---|---|---|---|
|
1
ก.ย. 18
|
4719 | ||
|
1
ม.ค. 17
|
5412 | ||
|
0
มี.ค. 25
|
1813 | ||
|
4
เม.ย. 24
|
174836 | ||
|
2
มี.ค. 24
|
2248 |