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
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
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
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
|
1
thg 9 18
|
4702 | ||
|
1
thg 1 17
|
5400 | ||
|
0
thg 3 25
|
1771 | ||
|
4
thg 4 24
|
174770 | ||
|
2
thg 3 24
|
2236 |