0

我有一個名爲list_a Django的清單:在我的Django的模板如何在Django模板中使用Django列表作爲javascript變量?

[['Host Name', 'No. of Events'], [u'12.23.21.23', 0], [u'2.152.0.2', 2]] 

我使用Google Chart API。我不得不PAAS list_a以下的Java腳本變量:

var data = google.visualization.arrayToDataTable([ 
    ['Host_name', 'No of events'], 
    ['12.23.21.23', 0], 
    ['2.152.0.2', 2] 
    ]); 

上面一個是硬編碼的,但我想通過以下方式使用:

var data = google.visualization.arrayToDataTable({{list_a}}); 

我試着用上面的代碼和使用chrome中提供的javascript console選項進行檢查。它表明這一點:

var data = google.visualization.arrayToDataTable([['Host Name', 'No. of Events'], [u'12.23.21.23', 0], [u'2.152.0.2', 2]]); 

我用硬編碼的碼本以上線相比,這是非常不同的,因爲下面的方法:

' 
['12.23.21.23', 0] See the quotes on ip address field but not to the next field 

我應該怎麼做等同於硬編碼的list_a ,以便我可以輕鬆獲得所需的圖表。

除了爲什麼當我試圖用它直接

我使用谷歌圖表

回答

4

編碼它作爲JSON的這個https://google-developers.appspot.com/chart/interactive/docs/gallery/combochart樣品,標誌着它的安全,並打印出來這個&#39發生。

var data = google.visualization.arrayToDataTable({{ list_a|json|safe }}) 

不幸的是,你需要編寫或找到json過濾器,或在視圖中進行編碼爲JSON。

+0

@Hamish:字符串前面的「u」是無效的JavaScript。 – 2012-07-23 21:38:57

+0

json過濾器在這裏編碼:http://djangosnippets.org/snippets/201/ – Goin 2012-07-23 23:13:50