Сравнение временных данных в Jinja

Я работаю с Django. У меня есть следующая переменная в моем шаблоне:

  • startingTime ее значение берется из базы данных (DateTimeField)
  • currentTime фактически переменная, которая содержит значение datetime.datetime.now()
  • durationInMinits фактически целочисленное поле, содержит int значение (в минутах)

Теперь мне нужно определить, больше ли разница между currentTime и startingTime чем durationInMinits или нет.

Я пробовал в своем template.py вот так:

{% if startingTime < currentTime < startingTime + durationInMinits %}
    <p> This will display if current time is greter than startingtime, but duration is not over </p>
{% endif %}

Но это дает ошибку. Пожалуйста, подскажите, как я могу сравнить время в jinja?

Вам нужно построить временной интервал. Таким образом, вы передаете durationInMinits как:

from datetime import timedelta

durationInMinits = timedelta(minutes=durationInMinits)

Если это невозможно, вы можете передать timedelta в качестве контекста, так:

context = { 'startingTime': datetime(2021, 8, 9), 'currentTime': datetime.now(), 'durationInMinits': 800, 'timedelta': timedelta }

и затем визуализировать с помощью:

{% if startingTime < currentTime < startingTime + timedelta(minutes=durationInMinits) %}
    …
{% endif %}
Вернуться на верх