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)