serializers serialize property fields example python django json

python - serialize - Django se serializa a JSON



json django example (6)

Tengo un modelo (programa) de Django con la clase de entidad, que es el padre de Activity , que es el padre del Event .

class Entity(models.Model): <...> class Activity(models.Model): <...> team_entity = models.ForeignKey(Entity) <...> class Event(models.Model): <...> activity = models.ForeignKey(Activity) <...>

¿Cómo serializo y obtengo tanto el objeto hijo como los nietos secundarios como parte del archivo JSON?




Creo que puede encontrar su respuesta aquí: http://code.djangoproject.com/ticket/4656

Esto se convertirá en parte de los serializadores django en algún momento. En este momento debería ser capaz de simplemente reemplazar serializadores Django estándar con esto y trabajar lejos.


Ahora uso django-piston. Esto hace el truco.


Me parece que la pregunta que estaba haciendo el afiche era terminar con un resultado como:

Por ejemplo, comenzando con estos modelos:

class Entity(models.Model): name = models.CharField(...) class Activity(models.Model): name = models.CharField(...) team_entity = models.ForeignKey(Entity) class Event(models.Model): name = models.CharField(...) activity = models.ForeignKey(Activity)

Resultado en JSON:

{ "model": "Entity", "name": "Dallas Cowboys", "activities": [ { "model": "Activity", "name": "Practice" }, { "model": "Activity", "name": "Game" "events": [ { "model": "Event", "name": "vs Washington Redskins" }, { "model": "Event", "name": "vs Green Bay Packers" } ] } ] }

De este modo, se mantiene el padre-hijo-nieto (no herencia, sino una relación de uno a muchos). Si esta no era la intención del póster inicial, me disculpo ... pero si es así, también me gustaría obtener la respuesta.


puedes hacer esto en simples dos líneas de código:

from django.core import serializers data = serializers.serialize("json", SomeModel.objects.all())