diff --git a/model_utils/managers.py b/model_utils/managers.py index c15bec7..132d84a 100644 --- a/model_utils/managers.py +++ b/model_utils/managers.py @@ -101,7 +101,7 @@ class PassThroughManager(models.Manager): """ # pickling causes recursion errors - _deny_methods = ['__getstate__', '__setstate__'] + _deny_methods = ['__getstate__', '__setstate__', '_db'] def __init__(self, queryset_cls=None): self._queryset_cls = queryset_cls @@ -114,7 +114,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 6adcb0e..2a72847 100644 --- a/model_utils/tests/models.py +++ b/model_utils/tests/models.py @@ -145,7 +145,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 {