我正在尝试创建一个简单的IF函数来检查项目的日期是否等于今天。不幸的是我无法让它发挥作用。我基本上认为该陈述是错误的,并且没有显示任何内容,即使它显示。我也没有收到任何错误。
我使用的代码如下:
{% if item.valid_until.date == now.date %}
<div id="what_i_want_to_show">
CONTENT
</div>
{% endif %}
valid_until的内容是来自Google App Engine应用的DateTimeProperty。通常在Django模板中使用它不会导致任何问题。迄今为止,关于SO的类似问题的解决方案无效。我错过了一些明显的东西吗?
更新1:
此语句在数据库查询结果的循环中运行。因此,在视图中进行比较并不是我能看到的,因为我必须在每个项目中发送变量。
答案 0 :(得分:0)
这种情况有两种方法:
第一: 您可以在模型上添加@property
型号:
from datetime import date
@property
def is_past_due(self):
return timezone.now() > self.valid_until # if valid until default is timezone.now else change it
模板:
{% if item.is_past_due %}
<!--In the past-->
{% else %}
{{ item.valid_until.date|date:"Y-m-d" }}
{% endif %}
第二: 用模板上的格式声明今天的日期
{% now "Y-m-d" as todays_date %}
{% if todays_date < item.valid_until.date|date:"Y-m-d" %}
<div id="what_i_want_to_show">
CONTENT
</div>
{% endif %}