如何将数据从django传递到d3.js

时间:2012-10-25 09:39:43

标签: django d3.js

我正在做一个调查网站项目,需要我使用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能够将其作为上面的代码读取?

1 个答案:

答案 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>

那样的东西?