codeisartАвторский веб-архив · 2008–2011

Python

Сравнение значений в шаблонах Django

В этой статье

В шаблоне Django можно выбрать фрагмент по результату сравнения. В современном встроенном теге if доступны операторы сравнения; установка старой библиотеки django-template-utils для этой задачи не нужна.

Больше четырёх

{% if some_val > 4 %}
  <p>Больше четырёх</p>
{% else %}
  <p>Не больше четырёх</p>
{% endif %}

В представлении передайте число, а не строку из непроверенного параметра запроса. Приведение и валидацию входа удобнее сделать до рендеринга шаблона.

Меньше или равно

{% if some_val <= 4 %}
  <p>Не больше четырёх</p>
{% else %}
  <p>Больше четырёх</p>
{% endif %}

Пробелы отделяют переменную и оператор. Для проверки равенства используется ==, а не присваивание =. Отсутствующее значение не следует считать проверенным нулём: явно определите, что делать с ним в данных страницы.

Откуда взялся старый совет

Первоначальная заметка решала ограничение старой версии шаблонного языка через дополнительные теги comparison. Этот способ относится к тому окружению. Для поддерживаемого проекта сначала сверяйтесь с возможностями своей версии Django, прежде чем устанавливать старый пакет.

Источник: документация Django 5.2: встроенный if.