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