Джанго Ифекуал Натуралдай
Я не уверен почему, но это условие никогда не оценит True для меня. Я кормлю его datetime.today() в файле URL. Я что-то пропустил?
Шаблон:
{% load humanize %}
{{ entry.date|naturalday }} {# Evals to "today" #}
{% ifequal entry.date|naturalday "today" %}
True
{{ entry.date|date:"fA"|lower }} {{ entry.date|naturalday|title }}
{% else %}
False
{{ entry.date|naturalday|title }}
{% endifequal %}
1 ответ
Я только что проверил это под Django 1.1.1, и он прекрасно работает для меня.
Какую версию Django вы используете?
Однако есть несколько других проблем, которые могут вызывать у вас проблемы:
Я также заметил, что в вашем вопросе у вас есть
{% load humaize %}
, который содержит опечатку (должен быть{% load humanize %}
). Я не уверен, что это в вашем реальном коде или просто в вашем вопросе.Если вы действительно используете
datetime.today()
в вашемurls.py
, как вы говорите, имейте в виду, что это может вызвать проблемы, так как значение будет рассчитываться только один раз, когдаextra_context
Сначала создается словарь (поскольку значение "сегодня" будет вычислено только один раз). Это может означать, что код будет работать в первый день работы приложения, а затем завершится ошибкой во второй день. Скорее всего, вы не заметите этого, пока не развернете среду, в которой приложение работает без перезапуска.Если вы хотите, чтобы это действительно было "сегодня", просто передайте функцию
datetime.today
скорее, чемdatetime.today()
, Таким образом, шаблон будет вызывать его при каждом рендере.