[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