1
我在django環境中的views.py中運行查詢。目前所有人都在本地運行,並最終將其推向Heroku環境。我使用PostgreSQL。django查詢餅圖highcharts
def test(request):
click_results = clickstats.objects.filter(user=request.user.username, urlid=pk_int)
data = parse_data_browser(request, click_results)
template = get_template('index.html')
context = {
'data': data,
}
return HttpResponse(template.render(context,request))
def parse_data_browser(request,click_results):
browsers = click_results.values('browser').annotate(browser_qty=Count('browser')).order_by()
print("browsers")
print(browsers)
return browsers
由parse_data_browser
打印輸出看起來是這樣的:
<QuerySet [{'browser': 'Chrome Mobile', 'browser_qty': 4}, {'browser': 'Chrome', 'browser_qty': 9}]>
面臨的挑戰是把它在這種形狀:
data = [{name: 'Chrome Mobile', y: 4}, {name: 'Chrome', y: 9}]
然後用它傳遞給我的index.html以下腳本:
<script>
var chart_id = {{ chartID|safe }}
var chart = {{ chart|safe }}
var title = {{ title|safe }}
var yAxis = {{ yAxis|safe }}
var data = {{ data|safe }}
</script>
並最終創建圖表與此腳本:
<script>
$(function() {
var myChart = Highcharts.chart('chartID', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
series: [{
name: 'Brands',
colorByPoint: true,
data: [{name: 'Chrome Mobile', y: 4}, {name: 'Chrome', y: 9}]
}]
});
});
</script>
我試圖用字典多的東西,並附加功能,但沒有確實給出正確的輸出。
什麼是最好的方法。我寧願不開始在我的環境中堆疊output-json文件,因爲這似乎是一種方法。
感謝您的幫助
正是我在找的!很好的幫助!必須做一些修改,因爲'item.browser'返回一個'AttributeError:'dict'對象沒有屬性'browser''並且做了一個這樣的解決方法:'data = [{'name':item ['browser'], 'y':項目['browser_qty']}在瀏覽器中的項目]' - 不喜歡在我的HTML模板,非常混亂:-) – radzia2
啊是的,當然這是一個字典,將更新我的答案。很高興幫助你:) –