Foros del Web » Programando para Internet » Python »

Agrupar Datos En Django

Estas en el tema de Agrupar Datos En Django en el foro de Python en Foros del Web. Buenas mundo, tengo una pregunta para vosotros, fijaos bien en la imagen que pondre y en el modelo, la idea es agrupar los capítulos por ...
  #1 (permalink)  
Antiguo 11/07/2013, 01:09
 
Fecha de Ingreso: mayo-2012
Ubicación: Mexico
Mensajes: 82
Antigüedad: 11 años, 11 meses
Puntos: 7
Agrupar Datos En Django

Buenas mundo, tengo una pregunta para vosotros, fijaos bien en la imagen que pondre y en el modelo, la idea es agrupar los capítulos por temporada.



Código Python:
Ver original
  1. class Serie(models.Model):
  2.     # Campos Opcionales.
  3.  
  4.     def serie_chapter(self):
  5.         return self.seriechapter_set.order_by("season","chapter")
  6.  
  7. class SerieChapter(models.Model):
  8.     serie = models.ForeignKey(Serie)
  9.     name = models.CharField(max_length=100, unique=True)
  10.     slug = models.SlugField(max_length=100, unique=True)
  11.     season = models.IntegerField(db_index=True, choices=CHOICES_SEASON)
  12.     chapter = models.IntegerField(choices=CHOICES_EPISODE)
  13.     created_at = models.DateTimeField(auto_now=True)

Como veis no tengo un modelo llamado temporada pues para mi no lo necesito, solo quiero agrupar los capítulos por temporada, exactamente como la imagen de arriba.

Temporada 1: todos los capítulos.
Temporada 2: todos los capítulos.

Gracias y buenas madrugadas.
  #2 (permalink)  
Antiguo 11/07/2013, 08:13
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Agrupar Datos En Django

Ya se preguntó antes

Cierro el tema anterior, seguimos en este si hay dudas. Lo que no entiendo es qué les impide hacerles preguntas a sus profesores...
  #3 (permalink)  
Antiguo 11/07/2013, 08:41
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Agrupar Datos En Django

Realmente no tengo tengo mucha idea de lo realmente quieres hacer.

Si quieres tener una lista de las temporadas de una serie entonces:
Código Python:
Ver original
  1. SerieChapter.objects.filter(serie=some_serie).values_list('season').distinct().order_by('season')

Para sacar todos los caps de una temporada:
Código Python:
Ver original
  1. SerieChapter.objects.filter(serie=some_serie, season=some_season).order_by('season', 'chapter')

Tambien puedes usar groupby de itertools aunque lo ideal es que agrupar lo haga la db:

Código Python:
Ver original
  1. SerieChapter.objects.filter(serie=some_serie).order_by('season', 'chapter')
  #4 (permalink)  
Antiguo 11/07/2013, 13:21
 
Fecha de Ingreso: mayo-2012
Ubicación: Mexico
Mensajes: 82
Antigüedad: 11 años, 11 meses
Puntos: 7
Respuesta: Agrupar Datos En Django

Cita:
Iniciado por AlvaroG Ver Mensaje
Ya se preguntó antes

Cierro el tema anterior, seguimos en este si hay dudas. Lo que no entiendo es qué les impide hacerles preguntas a sus profesores...
De que profesores hablas Alvaro,

Gracias.
  #5 (permalink)  
Antiguo 11/07/2013, 15:19
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Agrupar Datos En Django

Cita:
Iniciado por MacintoshD Ver Mensaje
De que profesores hablas Alvaro
Hay como 3 o 4 usuarios con el mismo proyecto (esperamos que no sean el mismo) y hacen mas o menos preguntas similares. Entonces es razonable que lleguemos a la conclusión que se trata de un proyecto de alguna universidad.

Incluso hace tiempo hice una app similar pero nunca libere su código.
  #6 (permalink)  
Antiguo 11/07/2013, 16:27
 
Fecha de Ingreso: mayo-2012
Ubicación: Mexico
Mensajes: 82
Antigüedad: 11 años, 11 meses
Puntos: 7
Respuesta: Agrupar Datos En Django

Hola, @rzpeitia seria genial ver el código en Github.

Mira un poco mas la idea del resultado:



Código Python:
Ver original
  1. def serie_season(self):
  2.     return self.seriechapter_set.order_by("season").distinct("season")
  3.  
  4. def serie_chapter(self):
  5.     return self.seriechapter_set.order_by("chapter")

Como ven el error esta en que no he podido tener los capítulos correspondientes en cada temporada, pero gracias a vosotros ya casi lo logro.

Gracias y un venga un saludo.

Última edición por MacintoshD; 11/07/2013 a las 17:13

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:37.