Сравнение временных данных в 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 %}