Как сравнить 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 }}
что дает нет. недель и дни. все еще не в состоянии понять это.

615   1  

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

    Ничего не найдено.