From ff6b09e7c753eda93d01c8089066a0bfc7891e05 Mon Sep 17 00:00:00 2001 From: Diederik van der Boor Date: Mon, 22 Sep 2014 15:14:32 +0200 Subject: [PATCH] admin: split get_queryset() / queryset() methods. avoid calling loops due to some inherited classes --- polymorphic/admin.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/polymorphic/admin.py b/polymorphic/admin.py index 8f04379..b06d03d 100644 --- a/polymorphic/admin.py +++ b/polymorphic/admin.py @@ -231,11 +231,15 @@ class PolymorphicParentModelAdmin(admin.ModelAdmin): def get_queryset(self, request): - return self.queryset(request) - - - def queryset(self, request): # optimize the list display. + qs = super(PolymorphicParentModelAdmin, self).get_queryset(request) + if not self.polymorphic_list: + qs = qs.non_polymorphic() + return qs + + + # For Django 1.5: + def queryset(self, request): qs = super(PolymorphicParentModelAdmin, self).queryset(request) if not self.polymorphic_list: qs = qs.non_polymorphic()