将django变量传递给javascript

时间:2019-04-29 10:05:31

标签: javascript django django-templates

我想将django变量传递给javascript,该变量是像这样的字典:{u'testvar1':u'1',u'testvar2':u'38',u'testvar3':u'160'}。我该怎么办?我似乎无法找到相同的解决方案。我是django的新手,非常抱歉这个noobie问题。

4 个答案:

答案 0 :(得分:2)

首先,您拥有以u开头的字符串的事实意味着您使用的是Python 2.7,这不仅是Python的一个非常老的版本,而且还意味着您使用的是Django的过时版本,因为它是最新版本仅支持Python3。您应该立即升级两者。

不过,要回答您的问题,您应该为此使用JSON。

return render(request, 'my_template.html', {'data': json.dumps(data)}

并在您的模板中:

var data = JSON.parse("{{ data|safe }}")

答案 1 :(得分:0)

您通过上下文传递变量,然后可以在Django模板的脚本中使用它们

def myview():
    ...
    return render(request, 'my_template.html', {'testvar1': testvar1}


<script>
    var testvar1 = {{ testvar1 }}
</script>

答案 2 :(得分:0)

def foo_view(request, slug):
    context_data = {u'testvar1': u'1', u'testvar2': u'38', u'testvar3': u'160'}
    return render(request, 'foo_template.html', context_data)

#foo_template.html
<script type="text/javascript">
   var a = "{{testvar1}}";
</script>

答案 3 :(得分:0)

首先在Django模板中使用该字典,并将其设置为以下html元素之一的值:

<input type="hidden" id="dict" value="{{your dict}}">

现在获取javascript中html元素的值。

In java script:
<script>
var dict = document.getElementById("dict").value;

</script>