如何在Django模板标签中传递Javascript变量

时间:2018-07-12 07:44:22

标签: javascript django python-3.x django-templates

你好,我有这个问题

如果有变量

<script>
 var a = True
<script>

我可以使用

之类的变量吗?
{% if a %}
  <h1> True</h1>
{%else%}
  <h1> False </h1>
{%endif%}

这两段代码都在同一页面中

我不想使用过滤器,这会使我的工作变得非常复杂

2 个答案:

答案 0 :(得分:2)

您可以在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>

答案 1 :(得分:1)

不,您不能。对于Django,var a = True只是一个字符串。

Django是创建HTML并告诉浏览器使用哪些字符串的浏览器,浏览器将解释该字符串并将其查找为JavaScript,因此它将执行并最终看到a是一个布尔值。

到那时,Django已经不见了

告诉django使用a作为布尔值的唯一方法是向服务器sending a as a JSON or querystring parameter发出另一个请求,然后从python / django解释该请求并在模板中使用它。 (非常昂贵的任务)