2014-03-06 130 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>