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
啊是的,当然这是一个字典,将更新我的答案。很高兴帮助你:) –