2017-04-11 40 views
0

我正尝试使用JavaScript在1到132(含)之间生成随机数,当用户单击按钮时。如何使用Django的JavaScript变量,反之亦然?

到目前为止,它产生的价值,我能够得到所需的输出。

问题: 我想在自定义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是我从我views.py传递的对象

有没有其他方法可以做同样的事情?

预先感谢您:)

+2

这个问题是基于对前端和后端代码之间差异的基本误解。 –

回答

0

正如丹尼尔已经提到的,你必须先明白是怎么回事幕后。您的django模板只存在于您的服务器上,并且所有模板代码都会在该服务器上执行。这个模板代码也可以用于非HTML呈现,就像您在random_generator()脚本中所做的一样。

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

相关问题