2014-03-06 193 views
1

是否有任何方法可以訪問變量Django模板tags
我可以做這樣的事情,在Django模板中訪問Javascript變量

<!DOCTYPE html> 
<html> 
    <body> 
    <script> 
     var javascriptvar=0; 
    </script> 
    {% if javascriptvar==0 %} 
     do this 
    {% else %} 
     do this 
    {% endif %} 
    </body> 
</html> 
+3

不是這樣的。 Python和JavaScript在兩個完全不同的時間執行。你想做什麼,爲什麼?你可以使用AJAX,但它可能是過度的 – Ian

+0

@lan,其實我試圖用django模板標籤截斷一些文本,而這個處理是基於一些javascript變量。 – fledgling

+1

@Nishant Django和JavaScript分別共享不同的執行環境服務器和客戶端...你試圖做的是不正確的。我會建議,如果javascriptvar是如此明顯使用它在模板本身 –

回答

6

沒有,Django模板編譯服務器端。然後發送到瀏覽器執行JavaScript的客戶端。在客戶端瀏覽器上執行的JavaScript所做的任何更改都不會影響模板。這一點已經太遲了。

但是,JavaScript可以做類似於從服務器發出另一個請求以獲取更多信息。或者,您可以在將其發送到客戶端之前預先計算服務器上的值。如果你對你想要做的事情更加明確,我們應該能夠提供幫助。

你當然可以使用Django模板來設置JavaScript變量。

<script> 
    var myVar = '{{ py_var }}'; 
</script>