如何将django上下文变量传递给javascript?

时间:2017-03-24 21:51:44

标签: javascript python django web highcharts

我使用的是高级图表,它需要我传入这个变量

 series: [{
        name: 'Brands',
        colorByPoint: true,
        data: [{
            name: 'Microsoft Internet Explorer',
            y: 56.33
        }, {
            name: 'Chrome',
            y: 24.03,
            sliced: true,
            selected: true
        }, {
            name: 'Firefox',
            y: 10.38
        }, {
            name: 'Safari',
            y: 4.77
        }, {
            name: 'Opera',
            y: 0.91
        }, {
            name: 'Proprietary or Undetectable',
            y: 0.2
        }]

我如何将其传递给我的javascript?

1 个答案:

答案 0 :(得分:2)

您可以在Python中生成数据结构,然后将其作为JSON对象传递给您的脚本。您需要使用django-argonauts之类的库来安全地执行此操作。

在您看来:

data = {
    'series': [
        'name': 'Brands',
        'colorByPoint': true,
        # etc...
    ]
}

将此作为上下文变量传递给模板。

然后,在模板中:

{% load argonauts %}
<script>
  (function () {
      var data = {{ data|json }};
      // do something with data
  })();
</script>

其中|json是Argonauts库提供的模板过滤器,它将为您正确处理所有数据。