Не удалось проанализировать остаток в операторах Django If/else в шаблонах

У меня есть пара операторов if / else, которые, похоже, возвращают одну и ту же ошибку синтаксического анализа независимо от того, какая страница или другой контент существует на странице.

Фактически приглушили его. Моя реальная логика имеет смысл, не волнуйтесь, я просто хочу знать, какой из моего синтаксиса вызывает эту проблему:

      <div>
    {% if True and 10 - 1 > 5 %}
        <p>1</p>
    {% else %}
        <p>2</p>
    {% endif %}
</div>

Когда я сделаю это, я ожидаю, что это покажет <p>1</p> , но вместо этого возвращает URL-адрес TemplateSyntaxError at. Не удалось проанализировать остаток: '-' от '-'.

2 ответа

Решение

По умолчанию в шаблонах django запрещены математические операции, такие как addition, subtraction, так далее..

Я бы предложил выполнить математическую операцию в вашей функции просмотра и отобразить ее в шаблоне, а затем использовать ее напрямую. Пример:

      def my_view(request):
    result = 10 - 1
    render(request, template, context={'my_result': result})

а затем в шаблоне вы должны сделать что-то вроде

      {% if True and my_result > 5 %}
      <div>
    {% if True and 10|add:'-1' > 5 %}
        <p>1</p>
    {% else %}
        <p>2</p>
    {% endif %}
</div>
Другие вопросы по тегам