2017-04-11 76 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進行比較。

相關問題