¿Hay alguna manera de realizar solo una consulta de una superclase y luego obtener una lista de todas las subclases respectivas en Django?[duplicar]

StackOverflow https://stackoverflow.com//questions/9674046

Pregunta

Posible duplicado:
Django Model Inheritance consulta una tabla central

Siguiendo los documentos oficiales que se encuentran aquí.
https://docs.djangoproject.com/en/dev/topics/db/models/#multi-table-inheritance

Veo que puedo consultar Lugar cual es un Super de Restaurante vía

p = Place.objects.filter(name="Bob's Cafe")

Entonces, en ese punto, ¿hay alguna manera de verificar y ver si los objetos devueltos también son del tipo subclase Restaurante y, de ser así, acceder a sus campos de subclase?

Por el momento, todo lo que puedo decir es que todos los objetos devueltos son de la clase Place y sus propiedades y métodos de subclase no están disponibles ya que el objeto no se convierte como su subclase.

Si esta metodología no es posible, ¿cuál es la mejor práctica para intentar abstraer una superclase y minimizar la sobrecarga de consultas al intentar obtener una lista que contenga todos los modelos de subclase?Entiendo que, en teoría, podría hacer una consulta de cada subclase y luego combinar la lista, pero luego tendría que hacer más si quisiera ordenar esa lista por ejemplo, por fecha.

¿Fue útil?

Solución

Entonces, en ese punto, ¿hay alguna manera de verificar y ver si los objetos devueltos también son del tipo subclase Restaurante y, de ser así, acceder a sus campos de subclase?

Si ha consultado el modelo Place, los objetos devueltos son instancias Place que no tienen conocimiento de ninguna subclase asociada a MTI.Debe proporcionar un campo en la superclase para vincularlo hacia abajo a la subclase.Ver Hacer genérico un diseño de herencia de tablas múltiples en Django

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top