Я знаю, что могу получить текущую дату как str
в шаблоне Django (используя тег шаблона now
), например:
{% now "Y-m-d" as today_str %}
<p>{{ today_str }}</p>
Но яне могу использовать это для сравнения:
{% now "Y-m-d" as today_str %}
{% for elem in object_list %}
{% if elem.date < today_str %} {# WRONG: this compares 'date' and 'str' #}
<p>{{ elem.pk }} before today</p>
{# do some other rendering #}
{% endif %}
{% endfor %}
Возможные решения:
Я знаю, что могу передать переменную контекста в шаблон, но это требует кода вмой взгляд:
# in my class-based-view in 'views.py'
def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs)
ctx['today'] = timezone.now()
return ctx
Или я могу создать собственный тег шаблона, но это еще более дополнительный код.
Как вы можетевидите, у меня есть обходные пути для моей проблемы, но я хотел бы знать, есть ли встроенный способ получить текущий date
(или datetime
) в шаблоне?