我正在尝试使用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时,它会抛出一个服务器错误,因为该对象显然没有被序列化。
有什么方法可以告诉它在转储数据时忽略这个键?非常感谢任何帮助。
答案 0 :(得分:2)
不是第一次将图形查询集序列化为json,而是先使用serializers.serialize('python', g)
将其转换为Python字典。然后整个事情将在最后转换为json。