Django Python как реализовать мою пользовательскую функцию даты рождения в представлениях?

Я пишу эту функцию python для вычисления возраста.

def age(birthdate):
    today = date.today()
    age = today.year - birthdate.year - ((today.month, today.day) < (birthdate.month, birthdate.day))
    return age

результат:

>>> print(age(date(1980, 1, 1)))
42

вот мой код:

models.py

class CalculateAge(models.Model):
      age = models.IntegerField(max_length=100)
      date_of_birth = models.DateField()

пользователь выбирает только дату рождения, и я хочу, чтобы возраст автоматически рассчитывался при отправке формы.

views.py

def CalculateAge(request):
    if request.method == "POST":
       patient_from = AddPatientFrom(request.POST or None)
       if patient_from.is_valid(): 
          patient_from.save()
      

как реализовать эту функцию возраста в моих views.py и models.py?

Я попробовал это в своем views.py, но ничего не получилось.

if patient_from.is_valid(): 
      pick_date = request.POST['date_of_birth']
      find_age = age(date(pick_date))
      print(find_age) 

получаю эту ошибку:

TypeError at /add-patient/ an integer is required (got type str)

Вам следует работать с .cleaned_data [Django-doc] формой: она будет содержать данные в виде date объекта:

if patient_from.is_valid(): 
      pick_date = form.cleaned_data['date_of_birth']
      find_age = age(age_y)
      print(find_age) 
Вернуться на верх