Django模板 - 将日期与今天进行比较

时间:2013-04-14 13:40:19

标签: google-app-engine date django-templates

我正在尝试创建一个简单的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:

此语句在数据库查询结果的循环中运行。因此,在视图中进行比较并不是我能看到的,因为我必须在每个项目中发送变量。

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 %}