从Django项目中的对象中减去Year



我试图从Django项目中创建的模型对象中减去年份数据。我想获得将模型中注册的对象中的日期与当前年份2022的值进行比较的最终值。类似于星历项目的周年纪念日计算。

逻辑:当前年份-在日期字段中具有' Year '值的对象& 1952&;;

逻辑示例:2022 - some_variable

预期结果= 70

我的模型:

class Person(models.Model):
dateborn= models.DateField()

我试图在我的views.py中的逻辑中使用。dates()来获取年份:

from app.models import Person
persons = Person.objects.all()
dateborn = persons.dates('dateborn','year')

那么我得到一个结果:

& lt; QuerySet [datetime。日期(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

我知道我把事情搞混了,但是我找不到正确的减法方法。(

我希望在上下文字典中指定'resultfinal'变量后,使用jinja2将减法计算的最终结果打印到我的HTML模板中。在我的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

相关内容

  • 没有找到相关文章

最新更新