如何在 django if 语句(模板)中使用 javascript 变量?
How to use javascript variable in django if statement (template)?
我正在尝试使用 Django if 语句更新我的 html 元素:
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 会在服务器(后端)端用结果替换所有标记 {{ }}
和 {% %}
。您的 JavaScript (JQuery?) 变量由客户端(前端)评估。 Django 不会知道 ${value}
是什么。所以,不,你不能在 Django 模板代码中使用 JavaScript 变量。
这并不意味着你不能达到你想要的,但必须按照以下方式完成。您的 JavaScript 代码可以 fetch the value of person.name
from a view and then you can do your if statement in the JavaScript file after the response from the fetch is received. The view could return the value of person.name
as a JsonResponse
我正在尝试使用 Django if 语句更新我的 html 元素:
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 会在服务器(后端)端用结果替换所有标记 {{ }}
和 {% %}
。您的 JavaScript (JQuery?) 变量由客户端(前端)评估。 Django 不会知道 ${value}
是什么。所以,不,你不能在 Django 模板代码中使用 JavaScript 变量。
这并不意味着你不能达到你想要的,但必须按照以下方式完成。您的 JavaScript 代码可以 fetch the value of person.name
from a view and then you can do your if statement in the JavaScript file after the response from the fetch is received. The view could return the value of person.name
as a JsonResponse