Как сравнить datetime в шаблоне django
Предыстория:
Я хочу показать время и дату только до 1 недели. После этого я хочу показать только дату.
Я хочу сделать что-то вроде этого. (Это не работает)
{% if greenboard.datetime|timesince >= "1 week" %}
{{greenboard.datetime.date}}<br />
{% else %}
{{greenboard.datetime|timesince}} ago
{% endif %}
Править:
Привет, даже тогда с редактированием все, что я получаю-это время вместе со всеми параметрами..то есть, дата и время . каким должен быть тег шаблона? на данный момент, используя это
{{ greenboard.datetime|timesince_threshold:2 }}
, который дает точное время, когда он размещен и опробован с помощью
{{ greenboard.datetime|timesince }}
что дает нет. недель и дни. все еще не в состоянии понять это.
1 ответ:
timesinceявляется простой оболочкой вокруг функцииdjango.utils.timesince. Самым простым решением для вашей проблемы было бы написать пользовательский фильтр:from datetime import datetime, timedelta from django import template from django.utils.timesince import timesince register = template.Library() @register.filter def timesince_threshold(value, days=7): """ return timesince(<value>) if value is more than <days> old. Return value otherwise """ if datetime.now() - value < timedelta(days=days): return timesince(value) else: return value timesince_threshold.is_safe = False
Comments