我需要将对象的DateTime
字段值中的年份与模板中的当前年份进行比较。如果年份不同,则显示对象的年份。这就是我这样做的方式:
{% now "Y" as current_year %}
<ul>
{% for news in news %}
{% if news.date.year != current_year %}
<b>{{ news.date.year }}</b>
<li>{{ news }}</li>
{% else %}
<li>{{ news }}</li>
{% endif %}
{% endfor %}
</ul>
它总是如此,并向我展示了这一年。
但是,如果我使用2015而不是current_year
,它可以正常工作。
基本上我需要这个:
第二条消息!
2014
第三条消息!
2013
答案 0 :(得分:1)
我不认为可以按照您尝试的方式完成。但是你可以为你的模型编写一个检查年份是否相同的方法。
from django.utils import timezone
class MyModel(...):
# fields ...
date = models.DateField(...)
def was_published_this_year(self):
now = timezone.now()
if now.year == self.date.year:
return True
else:
return False
现在,在你的模板中这样做:
{% if not news.was_published_this_year %}
Do something.
{% endif %}