diff --git a/polymorphic/admin.py b/polymorphic/admin.py index 4dc0b4e..8f04379 100644 --- a/polymorphic/admin.py +++ b/polymorphic/admin.py @@ -230,6 +230,10 @@ class PolymorphicParentModelAdmin(admin.ModelAdmin): raise ChildAdminNotRegistered("No child admin site was registered for a '{0}' model.".format(model_class)) + def get_queryset(self, request): + return self.queryset(request) + + def queryset(self, request): # optimize the list display. qs = super(PolymorphicParentModelAdmin, self).queryset(request) diff --git a/polymorphic/manager.py b/polymorphic/manager.py index 3e0e6d8..3c386a8 100644 --- a/polymorphic/manager.py +++ b/polymorphic/manager.py @@ -30,9 +30,13 @@ class PolymorphicManager(models.Manager): super(PolymorphicManager, self).__init__(*args, **kwrags) - def get_query_set(self): + def get_queryset(self): return self.queryset_class(self.model, using=self._db) + def get_query_set(self): + # Maintains Django <= 1.5 compatibility + return self.get_queryset() + # Proxy all unknown method calls to the queryset, so that its members are # directly accessible as PolymorphicModel.objects.* # The advantage of this method is that not yet known member functions of derived querysets will be proxied as well. diff --git a/polymorphic/tests.py b/polymorphic/tests.py index 47d3c90..fbb8614 100644 --- a/polymorphic/tests.py +++ b/polymorphic/tests.py @@ -110,8 +110,11 @@ class MyManagerQuerySet(PolymorphicQuerySet): class MyManager(PolymorphicManager): queryset_class = MyManagerQuerySet + def get_queryset(self): + return super(MyManager, self).get_queryset().order_by('-field1') + def get_query_set(self): - return super(MyManager, self).get_query_set().order_by('-field1') + return self.get_queryset() class ModelWithMyManager(ShowFieldTypeAndContent, Model2A): objects = MyManager() @@ -143,9 +146,13 @@ class PlainMyManager(models.Manager): def my_queryset_foo(self): return self.get_query_set().my_queryset_foo() - def get_query_set(self): + def get_queryset(self): return PlainMyManagerQuerySet(self.model, using=self._db) + def get_query_set(self): + # Maintains Django <= 1.5 compatibility + return self.get_queryset() + class PlainParentModelWithManager(models.Model): pass