2012-10-15 98 views
0

我想使用我的django站點的highcharts,但它需要像下面comlex JavaScript代碼。 所以我想在我的Python代碼中得到這個腳本,並替換適當的部分,然後將其寫入我的模板,第一個問題是,這是一個轉儲的方式來做一個不知道JavaScript的人。我可以閱讀它艱難。使用替換生成JavaScript代碼,Django

第二個問題是,爲什麼我不能替換這個字符串。可以說這個字符串是一個像這樣的變量。

lineChartsTemplate = 「」 「

...

...

」「」

,如果我嘗試做

lineChartsTemplate .replace( 'dataCategory' ,dataCategory)

它基本上是suppossed改變da taCategory文本與我的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'}] 
}); 
}); 

回答

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))