Objekte mit Django-Abfragesätzen serialisieren

Django bietet Tools zum Serialisieren von Abfragesätzen (django.core.serializers), aber wie sieht es mit dem Serialisieren von Abfragesätzen aus, die in anderen Objekten (wie Wörterbüchern) leben?

Ich möchte das folgende Wörterbuch serialisieren:

dictionary = { 'alfa': queryset1, 'beta': queryset2, } 

Ich habe mich dazu entschlossensimplejson (kommt mit Django). Ich verlängertesimplejson.JSONEncoder wie folgt:

from django.utils import simplejson
from django.core import serializers

class HandleQuerySets(simplejson.JSONEncoder):
     """ simplejson.JSONEncoder extension: handle querysets """
     def default(self, obj):
         if isinstance(obj, QuerySet):
             return serializers.serialize("json", obj, ensure_ascii=False)

         return simplejson.JSONEncoder.default(self, obj)

Dann mach ich:simplejson.dumps( dictionary, cls=HandleQuerySets), aber das zurückgegebene Wörterbuch sieht so aus:

{ "alfa": "[{\"pk\": 1, \"model\": \"someapp.somemodel\", \"fields\": {\"name\": \"alfa\"}}]",
  "beta": "[{\"pk\": 1, \"model\": \"someapp.somemodel\", \"fields\": {\"name\": \"alfa\"}}]" }

Django-generiertes JSON wird als String in das Wörterbuch eingefügt, nicht als JSON. Was mache ich falsch?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage