[pyar] Django: consultas a modelo con subclases

Esteban Ordano esteban en ordano.com.ar
Jue Dic 16 14:41:09 ART 2010


Hola Fernando:

Algo que podés hacer es una consulta al modelo AccessPoint y para cada
resultado fijarte el valor de __class__.

for entry in AccessPoint.objects.filter(condition):
    if entry.__class__ == VariantAccessPoint:
        pass

Saludos,
Esteban



2010/12/16 Fernando Gómez <fjgomez en gmail.com>:
> Hola!
>
> Les describo un problema que me tiene trabado.
>
> Tengo un modelo AccessPoint, y dos subclases PreferredAccessPoint y
> VariantAccessPoint. No voy a crear directamente instancias de
> AccessPoint, sólo de las subclases. Pero sí quiero poder hacer
> consultas a la unión de ambas subclases; es decir, quiero preguntar
> por todos los AccessPoints que cumplan determinada condición, y en el
> resultado quiero obtener tanto PreferredAccessPoints como
> VariantAccessPoints.
>
> Sucede que si planteo mi consulta usando el manager del modelo
> AccessPoint, los resultados que obtengo son los correctos, pero son
> instancias de AccessPoint, no de las subclases. ¿Cómo sé de qué tipo
> es cada resultado?
>
> La otra opción que veo es hacer dos consultas, y así obtener un
> QuerySet con instancias de PreferredAccessPoint y otro con instancias
> de VariantAccessPoint. En tal caso, ¿cómo hago un merge de ambos
> QuerySets para presentar los resultados de manera unificada (p.ej. en
> orden alfabético)?
>
> ¿Alguna de esas opciones parece ser mejor que la otra? ¿Se les ocurre
> una mejor opción?
>
> No sé si estoy planteando claramente el problema; es posible que esté
> trabado a causa de no estar entendiendo del todo lo que intento hacer
> :-) Pero confío en que una mirada ajena traiga un poco de claridad.
> (Seguro que todo esto es un ejemplo de un patrón de diseño
> archiconocido!)
>
> Saludos.
>
> --
> Fernando Gómez
> Biblioteca "Antonio Monteiro"
> INMABB (Conicet / Universidad Nacional del Sur)
> Av. Alem 1253
> B8000CPB Bahía Blanca, Argentina
> Tel. +54 (291) 459 5116
> http://inmabb.criba.edu.ar/
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



More information about the pyar mailing list