Как использовать переменную javascript в операторе if (шаблон) в django?
Я пытаюсь обновить мой html элемент с помощью оператора django if:
element.innerHTML= `{% if person.name == ${value} %} something {% endif %}`
но я получаю ошибку:
TemplateSyntaxError at /
Could not parse the remainder: '${value}' from '${value}'
Я также пробовал:
`{% if person.name == ${value} %} something {% endif %}`
Но утверждение не работает должным образом. Могу ли я что-нибудь сделать, чтобы объединить javascript с переменными Django?
Короткий ответ
.
Нет. Вы не можете этого сделать, по крайней мере, не так легко.
Подробный (немного) ответ
.
Django заменяет все теги {{ }} и {% %} результатом на сервере (back end), когда страница рендерится, прежде чем она попадет к клиенту. Ваша переменная JavaScript (JQuery?) оценивается клиентом (front end). Django не будет знать, что такое ${value}. Поэтому, нет, вы не можете использовать переменную JavaScript в коде шаблона Django.
Это не означает, что вы не можете достичь желаемого, но это должно быть сделано следующим образом. Ваш код JavaScript может получить значение person.name из представления, а затем вы можете выполнить оператор if в файле JavaScript после получения ответа от выборки. Представление может вернуть значение person.name в виде JsonResponse