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