Вычитание года из объекта в проекте Django
Я пытаюсь вычесть данные о годе из объекта модели, созданного в проекте Django. Я хочу получить конечное значение, сравнивая дату в объекте, зарегистрированном в моей модели, со значением текущего года, 2022. Что-то вроде вычисления юбилейной даты для проекта эфемерид.
Logic: Текущий год - объект со значением 'year' в поле даты "1952";
Логический пример: 2022 - some_variable
Ожидаемый результат = 70
Моя модель:
class Person(models.Model):
dateborn= models.DateField()
Я пытаюсь использовать .dates() в логике в моем views.py, чтобы получить год:
from app.models import Person
persons = Person.objects.all()
dateborn = persons.dates('dateborn','year')
тогда я получаю результат:
<QuerySet [datetime.date(1935, 1, 1)]>
OK!
Сейчас я пытаюсь разработать логику для вычитания результата этого QuerySet, используя только 'YEAR' объекта. Я знаю, что если я использую INT, я не смогу выполнить вычисление.
Я пытаюсь:
#used
resultfinal = 2022 - dateborn
AND
#used
resultfinal = datetime.today().strftime('%d/%m') - dateborn
Then
#My expected end result would be something like this:
resultfinal = 2022 - 1935
Я знаю, что все перепутал, но я не могу найти правильный метод вычитания :(
).Я рассчитываю использовать конечный результат вычисления вычитания для печати в моем HTML-шаблоне с помощью jinja2 после указания переменной 'resultfinal' в моем контекстном словаре. В моем HTML-файле я предполагаю использовать условие for для получения значений в списке:
{% for x in resultfinal %}
<p> Anniversary: {{x}} years </p> <!--Expected difference from the year registered in the database (-) the current year 2022-->
{% endfor %}
Может ли кто-нибудь помочь мне, пожалуйста? Большое спасибо!
Прежде всего, dateborn является QuerySet, как вы показали, поэтому используйте dateborn[0] для получения объекта даты.
Если вам нужен год, сделайте dateborn[0].year, что даст вам целое число года (1935), из которого вы можете вычесть.
resultfinal = datetime.date.today().year - dateborn[0].year