2012-02-12 4 views
0

JSONを使用してシリアル化されたオブジェクトを送信しようとしています。ここに私のビューのコードは次のとおりです。Django - シリアル化されたオブジェクトの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}) 

問題は(私はsimplejson.dumpsを使用する場合、一度serializers.serializeとし、再び)私は返すようにしようとしています「グラフ」オブジェクトが二回連載されていること(むしろ当然)でありますオブジェクトはjson文字列として受信されています。

私はこれをやってみました:

resp['graph'] = g 

しかし、私はsimplejson.dumpsを使用しようとすると、明らかにオブジェクトがシリアライズさないように、サーバーエラーがスローされます。

データをダンプするときにこのキーを無視する方法がありますか?助けていただければ幸いです。

答えて

2

最初にグラフクエリーセットをjsonにシリアル化するのではなく、serializers.serialize('python', g)を使用して最初にPythonディクショナリに変換します。それから、すべてが最後にjsonに変換されます。

+0

Hmm。これはうまくいかないようです。 – Hanpan

+0

「そうじゃない?」何が起こるのですか? –

+0

私は次のエラーが発生します: 'Graph'オブジェクトは反復可能ではありません – Hanpan

関連する問題