Django - JSON-ответ с сериализованным объектом - PullRequest
0 голосов
/ 12 февраля 2012

Я пытаюсь отправить сериализованный объект, используя 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 Ответ

2 голосов
/ 12 февраля 2012

Вместо того, чтобы сериализовать набор запросов графа в json в первый раз, используйте serializers.serialize('python', g), чтобы сначала преобразовать его в словарь Python. Тогда все это будет преобразовано в JSON в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...