[pyar] Django: consultas a modelo con subclases
Ramiro Morales
cramm0 en gmail.com
Dom Dic 19 17:37:10 ART 2010
2010/12/16 Fernando Gómez <fjgomez en gmail.com>
>
> 2010/12/16 Ramiro Morales <cramm0 en gmail.com>:
>
> > Pero no nos contas si la herencia es multi-tabla o abstracta.
>
> Ah, cierto, pero estaba más o menos implícito en el relato. Al
> principio hice que AccessPoint fuera abstracta, pues no necesito
> instancias de esa clase madre (sólo me interesan instancias de las
> subclases), y me pareció que ese era el camino a seguir.
>
> Pero luego noté que para poder hacer consultas globales (es decir,
> para tener un manager de AccessPoint, sin tener que entrar a consultar
> cada subclase por separado) necesitaba quitar el abstract=True, de
> modo que pasé a herencia multi-tabla.
Te lo preguntaba porque justamente nada de tu email inicial nos daba pista
sobre ese derrotero en tu razonamiento. "Tengo un modelo AccessPoint, y dos
subclases PreferredAccessPoint y VariantAccessPoint. No voy a crear directamente
instancias de AccessPoint, sólo de las subclases" es, consideraciones sobre
performance aparte, algo válido tanto para MTI como para AI.
Ahora que sabemos que es MTI van un par de enlaces
adicionales a los snippets que ya te sugirieron:
Un post del Jeff Elmore describiendo el problema y solucionándolo
con algunas optimizaciones para un nivel de herencia:
http://jeffelmore.org/2010/11/11/automatic-downcasting-of-inherited-models-in-django/
Carl Meyer, core developer de Django, incorporó dicha implementación
en su django-models-utils:
https://bitbucket.org/carljm/django-model-utils/src
Suerte,
--
Ramiro Morales
More information about the pyar
mailing list