如何在 django 模板标签中传递 Javascript 变量
Posted
技术标签:
【中文标题】如何在 django 模板标签中传递 Javascript 变量【英文标题】:How to pass a Javascript variable in django template-tag 【发布时间】:2018-12-20 08:25:06 【问题描述】:你好我有这个问题
如果有变量
<script>
var a = True
<script>
我可以像这样使用变量吗
% if a %
<h1> True</h1>
%else%
<h1> False </h1>
%endif%
两段代码在同一个页面中
我不想使用过滤器,这会使我的工作变得复杂谢谢
【问题讨论】:
不...因为 javascript 在前端运行,而 Django(模板)在后端运行。 【参考方案1】:您可以在 JavaScript 中进行 html 修改
例如:
<script>
var a = true;
if (a)
document.getElementById("your_h2_tag_ID").innerHTML = "True";
else
document.getElementById("your_h2_tag_ID").innerHTML = "False";
<script>
【讨论】:
【参考方案2】:不,你不能。对于 Django,var a = True
只是一个字符串。
Django 是创建 HTML 并告诉浏览器使用什么字符串的那个,浏览器会解释字符串并发现它是 JavaScript,所以它会执行并最终看到 a
是一个布尔值。
到那时,Django 早已不复存在
告诉 django 使用 a
作为布尔值的唯一方法是向服务器发出另一个请求 sending a
as a JSON or querystring parameter,然后解释来自 python/django 的请求并在模板中使用它。 (相当昂贵的任务)
【讨论】:
以上是关于如何在 django 模板标签中传递 Javascript 变量的主要内容,如果未能解决你的问题,请参考以下文章