【问题标题】:Django - JSON response with serialized objectDjango - 带有序列化对象的 JSON 响应
【发布时间】:2012-02-12 15:55:36
【问题描述】:

我正在尝试使用 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})

问题是(很明显)我试图返回的“图形”对象被序列化了两次(一次是使用 serializers.serialize,另一次是我使用 simplejson.dumps 时),并且该对象作为 json 字符串被接收.

我试着这样做:

resp['graph'] = g

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

有没有办法告诉它在转储数据时忽略这个键?将不胜感激。

【问题讨论】:

    标签: ajax django json serialization


    【解决方案1】:

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

    【讨论】:

    • “似乎没有”?会发生什么?
    • 您没有明确指出 g 是单个实例而不是查询集。您可以将其包装在一个列表中,就像您在原始代码中所做的那样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多