1

我正在尝试制作一个简单的 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 模板中使用它不会导致任何问题。到目前为止,类似问题的解决方案还没有奏效。我错过了一些明显的东西吗?

更新 1:

此语句在数据库查询结果的循环中运行。因此,据我所知,在视图中进行比较不起作用,因为我必须将变量与每个项目一起发送。

4

1 回答 1

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 %}
于 2021-05-18T16:51:35.377 回答