В рамках переноса самых замечательных постов
@property
def age(self):
today = date.today()
years = today.year - self.birth_date.year
if all((x >= y) for x, y in zip(today.timetuple(), self.birth_date.timetuple())):
age = years
else:
age = years - 1
return age
Еще вариант:
today = date.today()
years = today.year - self.birth_date.year
age = years - int(today.timetuple()[1:] < self.birth_date.timetuple()[1:])
И самый удачный:
birthday = date(1990, 01,23)
age = datetime.date.fromordinal(datetime.date.today().toordinal() - birthday.toordinal())