5

我目前正在做一个调查网络项目,需要我使用 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 能够像上面的代码一样读取它?

4

1 回答 1

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>

类似的东西?

于 2012-10-25T10:03:18.023 回答