如何根据django中模板中的日期过滤列表

时间:2015-01-11 18:27:04

标签: jquery django django-models django-forms django-templates

我有一个模型志愿者,我有一个字段'registered_at = models.DateTimeField()'。 我正在将一个志愿者对象列表传递给模板。

我想在模板中创建一个下拉列表,以便我可以根据'registered_at'过滤掉对象。所以基本上我可以列出昨天,今天等注册的志愿者。

简而言之,我必须根据模板中的数据对模型对象进行分组。所以我在模板中有一个日期,并且在该日期下面注册了所有对象。

我已经考虑了所有可能的想法和诱惑去jquery。任何人都可以提供一些简单的解决方案

1 个答案:

答案 0 :(得分:1)

在模板中没有简单的方法可以原生地执行此操作。但是,您可以向模型添加属性并在模板中访问它

models.py (在您的志愿者模型上;添加任意数量,即)

from datetime import date

@property
def registered_today(self):
    if date.today() == self.date:
        return True
    return False

然后,在您的模板中

<div class="
{% if volunteer_object.registered_today %}
    reg-today 
{% elif volunteer_object.registered_yesterday %}
    reg-yesterday
{% endif %}
    "> {{ volunteer_object }} </div>

现在,根据选择进行过滤的内容,使用JQuery设置di​​v显示属性。为每个用于过滤的复选框设置一个监听器,并为未选择的类(例如&#39; reg-yesterday&#39;)设置display: none,为{.1}}设置{.1}}。 / p>