我有一个Django模型(schedule)与实体类,它是父的Activity
,是父的Event
.
class Entity(models.Model): <...> class Activity(models.Model): <...> team_entity = models.ForeignKey(Entity) <...> class Event(models.Model): <...> activity = models.ForeignKey(Activity) <...>
我如何序列化并获取子对象和孙子作为JSON文件的一部分?
在进行序列化之前,在检索对象时,要保留关系,请使用select_related()来获取子项,孙子项等.
见http://docs.djangoproject.com/en/dev/ref/models/querysets/
我现在使用django-piston.这样就可以了.
在我看来,海报提出的问题是最终结果如下:
例如,从这些模型开始:
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)
结果为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" } ] } ] }
从而保持亲子孙子(不是遗产,而是一对多的关系遍历).如果这不是最初的海报的意图,我道歉...但如果是这样,我也希望得到答案.