我试图从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