如何根据 django 模板中的日期过滤列表
How to filter a list according to date in templates in django
我有一个模范志愿者,其中有一个字段 'registered_at = models.DateTimeField()'。
我正在将志愿者对象列表传递给模板。
我想在模板中创建一个下拉列表,以便我可以根据 'registered_at' 筛选出对象。所以基本上我可以列出昨天注册的志愿者,今天等等。
简而言之,我必须根据模板中的数据对模型对象进行分组。所以我在模板中有一个日期,所有在该日期下方注册的对象。
我已经考虑了所有可能的想法并且很想去 jquery。谁能给出一些简单的解决方案
没有简单的方法可以在模板中以本机方式执行此操作。但是,您可以向模型添加一个属性并在模板中访问它。
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 设置 div 显示属性。为每个用于过滤的复选框设置监听器,未选中的类(如'reg-yesterday')设置display: none
,选中的display: block
。
我有一个模范志愿者,其中有一个字段 'registered_at = models.DateTimeField()'。 我正在将志愿者对象列表传递给模板。
我想在模板中创建一个下拉列表,以便我可以根据 'registered_at' 筛选出对象。所以基本上我可以列出昨天注册的志愿者,今天等等。
简而言之,我必须根据模板中的数据对模型对象进行分组。所以我在模板中有一个日期,所有在该日期下方注册的对象。
我已经考虑了所有可能的想法并且很想去 jquery。谁能给出一些简单的解决方案
没有简单的方法可以在模板中以本机方式执行此操作。但是,您可以向模型添加一个属性并在模板中访问它。
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 设置 div 显示属性。为每个用于过滤的复选框设置监听器,未选中的类(如'reg-yesterday')设置display: none
,选中的display: block
。