Сравнение значений в шаблонах Django
Недавно столкнулся с проблемой, связанной с ограниченностью шаблонного языка Django, а именно невозможностью сравнить два значения между собой (больше, меньше и т.д.). Варианты вроде:
{% if some_val > 4 %}
<p>Истина</p>
{% else %}
<p>Ложь</p>
{% endif %}
вызывают ошибку.
В поисках решения я нагуглил библиотеку, разработанную Джеймсом Беннеттом (James Bennett) — django-template-utils.
Для использования достаточно добавить библиотеку в Python окружение, можно посредством установки:
tar zxvf template_utils-0.4p2.tar.gz
cd template_utils-0.4p2
python setup.py install
А можно просто добавить приложение в INSTALLED_APPS проекта.
В результате вам будут доступны функции сравнения значений, и другие полезные возможности в шаблонах Django.
Например проверка значения на условие «меньше или равно 4х»:
{% load comparison %}
{% if_less_or_equal some_val 4 %}
<p>Истина</p>
{% else %}
<p>Ложь</p>
{% endif_less_or_equal %}
Ссылка на библиотеку: django-template-utils.googlecode.com.
Похожие темы
RSS-лента комментариев к этой статье | Обратная ссылка (trackback link)

А еще лучше Jinja2 взять
Лол.
http://www.djangosnippets.org/snippets/12/
Спс за ссылку! Не знал
Потыкаю, может и правда что интересное есть. А вообще такие вещи можно и самому писать. В реальных проектах приходится много своих тегов и фильтров добавлять.
Ну кому как удобнее. Мне было проще выдернуть снипет из готовой библиотеки, не подключая ее целиком
А зачем логику в шаблоны пихать?
Эмм, а что вы подразумеваете под логикой? Тег {% if %} по вашему так же там лишний? )