Estoy tirando de mi cabello aquí porque esto no funciona para mí y parece que debería ser.¿Cómo hago que Django-Piston incluya objetos secundarios relacionados en la salida serializada?
Estoy usando Django-Piston para desarrollar una API y tengo 2 modelos, Construcción y Construcción.
BuildingArea tiene una ForeignKey to Building ya que hay varias áreas en un edificio. La propiedad 'related_name' para el FK es 'áreas' para que pueda acceder a BuildingAreas desde un edificio determinado.
El problema es que todo se ve bien en Admin pero cuando toco el /api/building.json endpoint, todo lo obtengo del objeto Building sin los objetos BuildingArea anidados incluidos en el JSON.
Hubiera pensado que Django-Piston seguiría campos FK inversos por defecto o me falta algo?
handlers.py
class BuildingHandler(BaseHandler):
allowed_methods = ('GET',)
model = Building
def read(self, name=None):
return self.model.objects.all()
models.py
class Building(models.Model):
address = models.CharField(max_length=255)
def __unicode__(self):
return self.address
class BuildingArea(models.Model):
display_name = models.CharField(max_length=30)
building = models.ForeignKey(Building, related_name='areas')
def __unicode__(self):
return self.display_name
DIEZ MIL votos a favor señor (o señora). O al menos uno. De alguna manera, debería perderme eso. Piston continúa sorprendiéndome. – winsmith
Tan loco como pensé que era esta respuesta, esta es la correcta. +1 y marcado para cuando lo olvide. –
Ahora que me ha ahorrado mucho tiempo. – julkiewicz