【发布时间】:2015-02-16 22:47:08
【问题描述】:
我目前正在使用 Django-Messages,可以看到收到消息的确切日期和时间。我正在尝试构建一个模板过滤器,该过滤器采用接收到的日期/时间,然后计算它是否是今天、昨天、上周等。
收件箱.html
Inbox | Received Today
{% for message in messages %}
{% if message.date|hours_ago:24 %}
Today
Sent by: {{ message.sender }}
{{ message.body }}
{% elif message.date|hours_ago:48 %}
Yesterday
Sent by: {{ message.sender }}
{{ message.body }
{% endif %}
{% endfor %}
模板过滤器
@register.filter
def hours_ago(time, hours):
return time + timedelta(hours=hours) < timezone.now()
这目前不起作用。例如,{% if message.date|hours_ago:3 %} 将显示所有电子邮件,无论 message.date 值如何。
知道message.date本身(没有模板过滤器)以“Dec. 17, 2014, 6:21 am”的格式显示可能会有所帮助,我不知道这是否有什么与模板过滤器不起作用的原因有关。
【问题讨论】:
标签: django django-templates django-template-filters