在JavaScript中使用Django JSON响应对象

2 投票
1 回答
1653 浏览
提问于 2025-04-16 17:37

这可能是个傻问题,但我对JavaScript还挺陌生的。我有一个用Python字典编码的JSON响应,我想把它用作JavaScript中的数据。

不过,Django返回的内容是一个字符串,里面包含了一个头部和一个哈希表。

那么,应该在哪里处理这些内容,把它们变成可以用的数据呢?(我只想要哈希表)

  • 在views.py里(我需要重新审视一下返回JSON对象的方式)
  • 在模板里(我的方法还不错,但我应该写一个自定义过滤器)
  • 在我的HTML里(我应该在文档加载时在JavaScript中去掉结果的头部)

谢谢!

补充:

jQuery部分

var chart;
$(document).ready(function() {
    chart = new Mycharts.Chart({
        chart: {
            renderTo: 'container',
            defaultSeriesType: 'bar'
        },
        settings: {
             data: [],
        },
    ...

视图部分

data = assemble_dict()
testVar2 = json_response(data)
return render_to_response('home.html', { "testVar": testVar, "testVar2": testVar2 })

应用逻辑

def assemble_dict():
    data = {}
    objects = Balance.objects.all()
    for obj in objects:
        data[obj.name.name_bank] = obj.money
    return data

def json_response(*args):
    return HttpResponse(
        simplejson.dumps(args),
    )

这是我现在从{{ testVar2 }}得到的内容:Content-Type: text/html; charset=utf-8 [{"Stuff": 50, "MoreStuff": 3}]

1 个回答

1

为什么你的视图和应用逻辑分开呢?我猜你指的是这个。看起来你的 json_response 函数其实就是一个视图,因为它返回了一个 HttpResponse。你要么直接返回 json_response 的值,要么就把这个函数里的 HttpResponse 调用去掉。

撰写回答