我正在做一个调查网站项目,需要我使用d3.js来执行某种条形图可视化。我正在使用Django来编写我的Web应用程序。
我遇到的问题是如何将与对象相关的所有值传递给d3.js中使用的数组?
choice = question.choicelist.get(choice_no=choice_no)
对于问题的每个选择的投票将是选择1 = 4,选择2 = 6,选择3 = 7,选择4 = 1.
对于ds.js,最简单的读取数据集的方法是:
var data = [ 4, 6, 7, 1]
如何将数据传递给我的模板,以便d3.js能够将其作为上面的代码读取?
答案 0 :(得分:8)
最简单的选项:将其转换为json。 Json是有效的javascript,因此您可以将其直接插入到模板中,这似乎是您想要的。像
这样的东西import json
def your_view(request):
poll_results = [4, 6, 7, 1]
poll_as_json = json.dumps(poll_results)
# Gives you a string '[4, 6, 7, 1]'
...
return render_or_whatever(context={'poll_as_json': poll_as_json})
在你的模板中:
<script ...>
var data = {{ poll_as_json }};
...
</script>
那样的东西?