Джанго Ифекуал Натуралдай - PullRequest
1 голос
/ 13 марта 2010

Я не уверен почему, но это условие никогда не оценит 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 Ответ

1 голос
/ 13 марта 2010

Я только что проверил это под Django 1.1.1, и он прекрасно работает для меня.

Какую версию Django вы используете?

Однако есть несколько других проблем, которые могут вызывать у вас проблемы:

  1. Я также заметил, что в вашем вопросе у вас есть {% load humaize %}, который содержит опечатку (должно быть {% load humanize %}). Я не уверен, что это в вашем реальном коде или просто в вашем вопросе.

  2. Если вы действительно используете datetime.today() в своем urls.py, как вы говорите, учтите, что это может вызвать проблемы, поскольку значение будет рассчитываться только один раз, когда словарь extra_context создается впервые (поскольку значение «сегодня» будет вычислено только один раз). Это может означать, что код будет работать в первый день работы приложения, а затем завершится ошибкой во второй день. Скорее всего, вы не заметите этого, пока не развернете среду, в которой приложение будет работать без перезапуска.

    Если вы хотите, чтобы оно действительно было «сегодня», просто передайте функцию datetime.today вместо datetime.today(). Таким образом, шаблон будет вызывать его при каждом рендере.

...