Django - 带序列化对象的JSON响应

时间:2012-02-12 15:55:36

标签: ajax django json serialization

我正在尝试使用JSON发送序列化对象。这是我的观看代码:

if request.is_ajax():
        resp = {}
        if request.POST:
            if form.is_valid():
                g = form.save()
                resp['graph'] = serializers.serialize('json', [g, ])
                resp['success'] = True
            else:
                resp['errors'] = form.errors
                resp['success'] = False
            return HttpResponse(simplejson.dumps(resp), mimetype='application/javascript')
        return render(request, 'graph/inlines/create.html', {'form':form})

问题是(相当明显)我试图返回的'graph'对象被序列化两次(一次使用serializers.serialize,当我使用simplejson.dumps时再次)并且该对象被接收为json字符串

我试过这样做:

resp['graph'] = g

但是当我尝试使用simplejson.dumps时,它会抛出一个服务器错误,因为该对象显然没有被序列化。

有什么方法可以告诉它在转储数据时忽略这个键?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

不是第一次将图形查询集序列化为json,而是先使用serializers.serialize('python', g)将其转换为Python字典。然后整个事情将在最后转换为json。