mirror of
https://github.com/Hopiu/django-model-utils.git
synced 2026-04-27 14:04:42 +00:00
backwards comptatible get_queryset, for Django < 1.6
This commit is contained in:
parent
5ae92dba27
commit
910bcc7830
2 changed files with 21 additions and 2 deletions
|
|
@ -173,6 +173,8 @@ class InheritanceManager(models.Manager):
|
|||
def get_queryset(self):
|
||||
return InheritanceQuerySet(self.model)
|
||||
|
||||
get_query_set = get_queryset
|
||||
|
||||
def select_subclasses(self, *subclasses):
|
||||
return self.get_queryset().select_subclasses(*subclasses)
|
||||
|
||||
|
|
@ -196,11 +198,16 @@ class QueryManager(models.Manager):
|
|||
return self
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super(QueryManager, self).get_queryset().filter(self._q)
|
||||
try:
|
||||
qs = super(QueryManager, self).get_queryset().filter(self._q)
|
||||
except AttributeError:
|
||||
qs = super(QueryManager, self).get_query_set().filter(self._q)
|
||||
if self._order_by is not None:
|
||||
return qs.order_by(*self._order_by)
|
||||
return qs
|
||||
|
||||
get_query_set = get_queryset
|
||||
|
||||
|
||||
class PassThroughManager(models.Manager):
|
||||
"""
|
||||
|
|
@ -235,11 +242,16 @@ class PassThroughManager(models.Manager):
|
|||
return getattr(self.get_queryset(), name)
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super(PassThroughManager, self).get_queryset()
|
||||
try:
|
||||
qs = super(PassThroughManager, self).get_queryset()
|
||||
except AttributeError:
|
||||
qs = super(PassThroughManager, self).get_query_set()
|
||||
if self._queryset_cls is not None:
|
||||
qs = qs._clone(klass=self._queryset_cls)
|
||||
return qs
|
||||
|
||||
get_query_set = get_queryset
|
||||
|
||||
@classmethod
|
||||
def for_queryset_class(cls, queryset_cls):
|
||||
return create_pass_through_manager_for_queryset_class(cls, queryset_cls)
|
||||
|
|
@ -254,6 +266,8 @@ def create_pass_through_manager_for_queryset_class(base, queryset_cls):
|
|||
qs = super(_PassThroughManager, self).get_queryset()
|
||||
return qs._clone(klass=queryset_cls)
|
||||
|
||||
get_query_set = get_queryset
|
||||
|
||||
def __reduce__(self):
|
||||
# our pickling support breaks for subclasses (e.g. RelatedManager)
|
||||
if self.__class__ is not _PassThroughManager:
|
||||
|
|
|
|||
|
|
@ -197,6 +197,7 @@ class FeaturedManager(models.Manager):
|
|||
kwargs["using"] = self._db
|
||||
return ByAuthorQuerySet(self.model, **kwargs).filter(feature=True)
|
||||
|
||||
get_query_set = get_queryset
|
||||
|
||||
|
||||
class DudeQuerySet(models.query.QuerySet):
|
||||
|
|
@ -218,6 +219,8 @@ class AbidingManager(PassThroughManager):
|
|||
def get_queryset(self):
|
||||
return DudeQuerySet(self.model).abiding()
|
||||
|
||||
get_query_set = get_queryset
|
||||
|
||||
def get_stats(self):
|
||||
return {
|
||||
"abiding_count": self.count(),
|
||||
|
|
@ -246,6 +249,8 @@ class SpotManager(PassThroughManager):
|
|||
def get_queryset(self):
|
||||
return super(SpotManager, self).get_queryset().filter(secret=False)
|
||||
|
||||
get_query_set = get_queryset
|
||||
|
||||
|
||||
class SpotQuerySet(models.query.QuerySet):
|
||||
def closed(self):
|
||||
|
|
|
|||
Loading…
Reference in a new issue