0

在我的 django 模板中,我使用 for 循环列出了一些事件项目。该事件具有关联的 date_of_occurrence 属性,它是一个 python DateTime。如果日期时间小于当前日期时间,我需要将事件的背景设为红色。

我想过这样做

在模板中

<ul>
{% for  event in events %}
  <div id="event_div"
    <li>
       event.name<br>
       event.date_of_occurrence
    </li>
  </div>
{% endfor %}
</ul>

在 CSS 中

.pastevent{
  background-color:red;
}

我需要一个 javascript 函数来将具有 id 的元素类设置 event_divpastevent。有人可以告诉我如何实现这个函数吗?

据我了解,该功能不会被任何点击事件触发,而是在页面加载时触发。从模板传递的事件的日期时间值将如何与当前的 javascript 日期进行比较?

4

1 回答 1

1

您不一定必须使用 javascript 来执行此操作。使用模板标签有几个不同的选项。

更简单的方法(更粗略)是将当前日期时间呈现给模板,例如。current_date 然后在您的模板中进行逻辑检查。

{% for  event in events %}
    {% if event.date_of_occurrence < current_date %}  
    <div id="pastevent">
    {% else %}
    <div id="event_div">
    {% endif %}
    <li>
       event.name<br>
       event.date_of_occurrence
    </li>
  </div>
{% endfor %}

另一种选择是创建一个自定义模板过滤器,该过滤器返回事件是否过去,并应用与上述相同的逻辑。

于 2012-10-18T03:25:37.483 回答