我想将一个stringarray从我的views.py移交给模板,并将这个字符串用于D3。
views.py:
def index(request):
template = loader.get_template("myApp/index.html")
data = ["a","b","c"]
context = RequestContext(request,{"data":data})
return HttpResponse(template.render(context))
的index.html:
<html>
<head>
<title>Some project</title>
<script type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
</head>
<body>
<h1>Some project visualisation</h1>
<script type="text/javascript">
var dataArray = {{ data }};
...
at&#34; var dataArray = {{data}};&#34;我收到语法错误。 我在浏览器控制台和我的dataArray中查找了这个 看起来像这样:
var dataArray = ['a','b','c']
我也尝试过使用json.dumps(data),但是我得到了类似的dataArray:
var dataArray = ["a","b","c"]
答案 0 :(得分:1)
您要搜索的是“安全”过滤器:
context = RequestContext(request,{"data":json.dumps(data)})
...
<script type="text/javascript">
var dataArray = {{ data | safe }};
https://docs.djangoproject.com/en/dev/ref/templates/builtins/#std:templatefilter-safe
如果您在javascript中更频繁地使用变量,那么转换off autoescape
可能是有意义的