I have the following Django models.py:
class members(models.Model):
def calculate_age(dob):
return int((datetime.date.today() - dob).days / 365.25 )
auto_id = models.AutoField(primary_key=True)
member_name = models.CharField(max_length=25, blank=False, default='')
member_dob = models.DateField(blank=True)
wife_name = models.CharField(max_length=25, blank=False, default='')
wife_dob = models.DateField(blank=True)
member_age = property(calculate_age(member_dob))
wife_age = property(calculate_age(wife_dob))
Now from calculate_age if I pass the member_dob it is going as datefield type and not the actual value.
But If I use the self then it works fine as below,
class members(models.Model):
def calculate_age(self):
return int((datetime.date.today() - self.member_dob).days / 365.25 )
def calculate_age_wife(self):
return int((datetime.date.today() - self.wife_dob).days / 365.25 )
auto_id = models.AutoField(primary_key=True)
member_name = models.CharField(max_length=25, blank=False, default='')
member_dob = models.DateField(blank=True)
wife_name = models.CharField(max_length=25, blank=False, default='')
wife_dob = models.DateField(blank=True)
member_age = property(calculate_age)
wife_age = property(calculate_age_wife)
Now the issue is, I need to call this calculate_age for multiple items so need to pass the value to the method