Foros del Web » Programando para Internet » Python »

Datos en relaciones Many to Many en Django

Estas en el tema de Datos en relaciones Many to Many en Django en el foro de Python en Foros del Web. Hola a todos necesito dado una realación many to many, entre una entidad productos y una categoria, saber la cantidad de productos por categoria... O ...
  #1 (permalink)  
Antiguo 22/08/2014, 06:19
 
Fecha de Ingreso: agosto-2014
Mensajes: 9
Antigüedad: 7 años, 3 meses
Puntos: 0
Datos en relaciones Many to Many en Django

Hola a todos necesito dado una realación many to many, entre una entidad productos y una categoria, saber la cantidad de productos por categoria...

O sea:

prod = productos.objects.filter(categoria=1).count()//estaría obteniendo los productosde la categoria con id = 1, pero lo que quiero es que sea para todas las categorias no para una sola... lo que necesito es tener una relacion como esta,

categoria1 2
categoria3 5

También he probado esto:

prod = productos.objctes.all()//todos los productos
---en la plantilla:
{%for p in prod%}
{%for cat in p.categoria.all %}
{{cat.nombre}} -> {{p.nombre | length }}
{%endfor%}
{%endfor%}

---Resultado
categoria1 10
categoria1 15
asi por estilo....

Estoy dando mis primero tropiesos en Django y estaría agradecido de tener sus sugerencia...

Saludos a todos
  #2 (permalink)  
Antiguo 22/08/2014, 09:38
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 16 años, 8 meses
Puntos: 1360
Respuesta: Datos en relaciones Many to Many en Django

Código Python:
Ver original
  1. from django.db.models import Count
  2. prod = productos.objctes.all().annotate(num_cat=Count('categoria'))


Código Python:
Ver original
  1. {%for p in prod%}
  2. {%for cat in p.categoria.all %}
  3. {{cat.nombre}} -> {{p.num_cat }}
  4. {%endfor%}
  5. {%endfor%}

Fuente: Lee la documentación https://docs.djangoproject.com/en/1....b/aggregation/
  #3 (permalink)  
Antiguo 22/08/2014, 11:47
 
Fecha de Ingreso: agosto-2014
Mensajes: 9
Antigüedad: 7 años, 3 meses
Puntos: 0
Respuesta: Datos en relaciones Many to Many en Django

Ok, vale gracias por la ayuda..pero al final todo parece que esu un problema en con el diseÑo de la base de datos...pues al probar lo que obtengo es lo siguiente...
Deportivos -> 1
Deportivos -> 1
Autos -> 1
Deportivos -> 1
Deportivos -> 1
Electrodomésticos -> 1
Autos -> 1
Autos -> 1
Autos -> 1
Utiles del Hogar -> 1
Utiles del Hogar -> 1

y eso es porque la base de datos que estoy utilizando diseÑaron la relación en el sentido producto - categoria...y lo que estoy tratando de hacer tiene que estar en el sentido categoria - producto, pues eso es lo que se persigue:

mostrar que la categoria Autos tiene 5 productos...

Gracias por la ayuda cualquier ayuda siempre es recibida...

saludos

Etiquetas: django, relaciones
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 20:45.