2

我试图找出最干净的方法来获取我在 django 视图中拥有的 python dict 并将其放入 highcharts 中的饼图系列中。具体来说,当我单击页面上一个图表中的一个点时,我正在尝试加载第二个图表,其中包含该点的详细数据。

例如,我可能有一个柱形图,其中包含“水果”、“肉类”、“蔬菜”的库存。如果我点击一列,第二个图表会显示库存明细。AKA 第二个“水果”图表将在饼图中显示“苹果”、“橙子”、“香蕉”的库存。

我正在尝试使用 jQuery.get 来执行此操作,因为我不想重新加载整个页面。我的 django 视图将有一个部分用于处理看起来像这样的 ajax:

myData = {}
myData['apples'] = 20
myData['oranges'] = 30
myData['bananas'] = 50

context = Context()
context['fruit'] = myData
return HttpResponse(context)

我想用于饼图的数据格式将 dict 键作为 x,将 dict 值作为 y:

[['apples',20],['oranges',30]…]

我已经尝试将数据作为字符串从视图传递到脚本,虽然它作为字符串正确地通过电线,但没有按照我想要的方式处理,因为我认为值 20、30 等被处理为字符串和不是价值观。我不确定这是否是正确的方法。我应该通过在 django 模板中呈现上下文来做到这一点吗?如果是这样,在 jQuery/ajax 成功处理程序中会是什么样子?

似乎从 dict 到具有上述格式的 highcharts 系列(dict 键作为 x,dict 值作为 y)将是许多人所做的事情,所以我认为我遗漏了一些东西。

4

2 回答 2

2

尝试这个:

import json
from django.http import HttpResponse

myData = {}
myData['apples'] = 20
myData['oranges'] = 30
myData['bananas'] = 50

response_data = {
  'data': myData,
  'message': 'OK',
  'status': 'success'
}

return HttpResponse(json.dumps(response_data), content_type="application/json")
于 2013-06-14T11:39:06.893 回答
1

If you are using django >= 1.7, JsonResponse will be a better choice.

from django.http import JsonResponse

def my_data(request):
    myData = {}
    myData['apples'] = 20
    myData['oranges'] = 30
    myData['bananas'] = 50
    return JsonResponse(myData, safe=False)
于 2015-03-13T02:46:37.130 回答