From fb1795ad12b83f569f65c4a410c328aa521c34f6 Mon Sep 17 00:00:00 2001 From: Marius Lueck Date: Fri, 25 Jul 2014 11:48:07 +0200 Subject: [PATCH] Fixed compatibility with django 1.8 --- polymorphic/admin.py | 6 +++++- polymorphic/manager.py | 6 +++++- polymorphic/tests.py | 11 +++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/polymorphic/admin.py b/polymorphic/admin.py index 9ef4ec5..addf517 100644 --- a/polymorphic/admin.py +++ b/polymorphic/admin.py @@ -220,8 +220,12 @@ class PolymorphicParentModelAdmin(admin.ModelAdmin): def queryset(self, request): + return self.get_queryset(request) + + + def get_queryset(self, request): # optimize the list display. - qs = super(PolymorphicParentModelAdmin, self).queryset(request) + qs = super(PolymorphicParentModelAdmin, self).get_queryset(request) if not self.polymorphic_list: qs = qs.non_polymorphic() return qs 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