如何将javascript变量与Django一起使用,反之亦然?

2024-10-03 11:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

当用户单击按钮时,我尝试使用JavaScript生成1到132(包括132)之间的随机数。你知道吗

到目前为止还不错,它产生的价值,我能够得到所需的输出。你知道吗

问题: 我将在一个定制的Django过滤器中使用生成的值(或者不管它叫什么)。让我用我的代码更好地解释一下:

<script type="text/javascript">
    function random_generator()
    {
      var rand = [];
      var i;
      var j;
      var text = "";
      for(i = 0; i < 5; ++i)
      {
        rand[i] = Math.floor((Math.random() * 132) + 1);
        text += rand[i];
      }
      document.getElementById('rand1').innerHTML = text; //Just trying to see if the numbers are generated properly

      var text2 = "{%for i in allb %}{%if i.id == " + text + "|add:0 %}<p>{{ i.name }}</p>{% endif %}{%endfor%}";
      document.getElementById('rand2').innerHTML = text2;
      document.writeln(rand[0]);
    }
  </script>

以下是我尝试做的其他事情:

<div id="b005" class="modal">
    <div id="rand1"></div>
    <div id="rand2"></div>
      {%for i in allb %}
        {%if i.id == **WANT TO USE THE JS VARIABLE HERE**|add:0 %}
          <p>{{ i.name }}</p>
        {% endif %}
      {%endfor%}
  </div>

注意:allb是我从视图.py你知道吗

有没有其他方法可以做到这一点?你知道吗

提前感谢:)


Tags: textdividforifvarscriptrandom
1条回答
网友
1楼 · 发布于 2024-10-03 11:23:28

正如丹尼尔已经提到的,你必须首先了解幕后发生了什么。django模板只存在于服务器上,所有模板代码都在该服务器上执行。此模板代码也可以用于非html呈现,就像您在random\u generator()脚本中所做的那样。你知道吗

但是浏览器只接收模板的评估版本。因此,不可能将django模板代码(服务器端)与客户端js进行比较。你知道吗

相关问题 更多 >