0

我想在我的 django 网站上使用 highcharts,但它需要一个复杂的 javascript 代码,如下所示。所以我想在我的python代码中获取这个脚本并替换适当的部分,然后将它写在我的模板中,第一个问题是,对于不了解javascript的人来说,这是一种转储方式吗?我可以读得很艰难。

第二个问题是,为什么我不能替换这个字符串。可以说这个字符串是这样的变量。

lineChartsTemplate = """

...

...

"""

如果我尝试去做

lineChartsTemplate .replace('dataCategory', dataCategory)

它基本上应该用我的 dataCategory 变量更改 dataCategory 文本,但没有这样的运气。

我需要这里的指导。谢谢。

$(function () { 
var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        type: 'bar'
    },
    xAxis: {
        categories: dataCategory
    },
    yAxis: {   
    },
    legend: {
        layout: 'vertical',
        floating: true,
        backgroundColor: '#FFFFFF',
        align: 'right',
        verticalAlign: 'top',
        y: 60,
        x: -60
    },
    tooltip: {
        formatter: function() {
            return '<b>'+ this.series.name +'</b><br/>'+
                this.x +': '+ this.y;
        }
    },
    plotOptions: {
    },
    series: [{
        data: dataList ,      
        name : 'Satışlar'}]
});
});
4

1 回答 1

1

我认为你能做的最好的就是使用 django 模板系统来实现你需要的那种替换。

如果你在你的模板中加入这样的东西。

$(function () { 
var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        type: 'bar'
    },
    xAxis: {
        categories: {{ dataCategory }}
    },
    yAxis: {   
    },
    legend: {
        layout: 'vertical',
        floating: true,
        backgroundColor: '#FFFFFF',
        align: 'right',
        verticalAlign: 'top',
        y: 60,
        x: -60
    },
    tooltip: {
        formatter: function() {
            return '<b>'+ this.series.name +'</b><br/>'+
                this.x +': '+ this.y;
        }
    },
    plotOptions: {
    },
    series: [{
        data: dataList ,      
        name : 'Satışlar'}]
});
});

然后你可以用类似的东西替换 dataCategory

return render_to_response(
    "template_with_embedded_js",
    {'dataCategory': dataCategory},
    RequestContext(request))
于 2012-10-15T22:05:33.717 回答