Не удалось проанализировать остаток в операторах 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>