Serialización de objetos que contienen querysets de django

Django proporciona herramientas para serializar querysets (django.core.serializers), pero ¿qué pasa con serializar querysets que viven dentro de otros objetos (como diccionarios)?

Quiero serializar el siguiente diccionario:

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

Decidí hacer esto usandosimplejson (viene con django). Extendísimplejson.JSONEncoder de la siguiente manera:

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)

Entonces lo hago:simplejson.dumps( dictionary, cls=HandleQuerySets), pero el dicionario devuelto se ve así:

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

El JSON generado por Django se inserta en el diccionario como una cadena, no JSON. ¿Qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta