python - Django - Multi-table inheritance - reverse relation to SubClass -


i appreciate following problem. lets use models django documentation illustrate situation.

models.py

from django.db import models  class place(models.model):     owner = djangomodels.foreignkey('owner', related_name='places')     objects = passthroughmanager.for_queryset_class(placequeryset)()  class restaurant(place):     ... members ...     objects = passthroughmanager.for_queryset_class(restaurantqueryset)()  class pub(place):     ... members ...     objects = passthroughmanager.for_queryset_class(pubqueryset)()  class owner(models.model):     ... members ... 

queryset.py

class placequeryset(djangomodels.query.queryset):     .. common place filters ...  class restaurantqueryset(placequeryset):     .. restaurant specific filters ...  class pubqueryset(placequeryset):     .. pub specific filters ... 

so can see above have 1 base model 'place' , 2 sub models 'restaurant' , 'pub'. base model 'place' has link 'owner' object. querysets (placequeryset, restaurantqueryset, pubqueryset) have same inheritance hierarchy models (place, restaurant, pub).

the challenge having somehow retrieve pubqueryset containing pub objects linked owner....


i know 1 way need add owned_by(owner) filter pubqueryset , call following:

pub.objects.owned_by(owner) 

but has performance issues because '.objects' not use prefetched results , hits db.


my thoughts:

when call

# owner instance of owner class >>owner.places.all() 

it returns

placequeryset[<place object ><place object ><place object >....] 

but how

pubqueryset[<pub object ><pub object >] 

???

i know select_subclasses() method django-model-utils(1) can downcast objects in queryset if this

# owner instance of owner class >>owner.places.select_subclasses('pub') 

i placequeryset instances of pub class

placequeryset[<pub object ><pub object >] 

but still receive placequeryset , not pubqueryset...

thank help

jano


Comments

Popular posts from this blog

java.util.scanner - How to read and add only numbers to array from a text file -

rewrite - Trouble with Wordpress multiple custom querystrings -