From d8798fb784b2607b51fc3fe7ecdca1c08553ac03 Mon Sep 17 00:00:00 2001 From: Paul McLanahan Date: Tue, 29 Mar 2011 21:57:49 -0400 Subject: [PATCH] Fixed a recursion error in Django 1.1 --- model_utils/managers.py | 7 +++++-- model_utils/tests/models.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/model_utils/managers.py b/model_utils/managers.py index 1f51d9d..89e79b5 100644 --- a/model_utils/managers.py +++ b/model_utils/managers.py @@ -100,7 +100,7 @@ class PassThroughManager(models.Manager): objects = PassThroughManager(PostQuerySet) ''' # pickling causes recursion errors - _deny_methods = ['__getstate__', '__setstate__'] + _deny_methods = ['__getstate__', '__setstate__', '_db'] def __init__(self, queryset_cls=None): self._queryset_cls = queryset_cls @@ -113,7 +113,10 @@ class PassThroughManager(models.Manager): def get_query_set(self): if self._queryset_cls is not None: - return self._queryset_cls(self.model, using=self._db) + kargs = {'model': self.model} + if hasattr(self, '_db'): + kargs['using'] = self._db + return self._queryset_cls(**kargs) return super(PassThroughManager, self).get_query_set() diff --git a/model_utils/tests/models.py b/model_utils/tests/models.py index a84e1cc..9e1582b 100644 --- a/model_utils/tests/models.py +++ b/model_utils/tests/models.py @@ -131,7 +131,7 @@ class DudeQuerySet(models.query.QuerySet): class AbidingManager(PassThroughManager): def get_query_set(self): - return DudeQuerySet(self.model, using=self._db).abiding() + return DudeQuerySet(self.model).abiding() def get_stats(self): return {