Repository URL to install this package:
|
Version:
0.30.0 ▾
|
# Copyright (c) 2015 Docker, Inc. All rights reserved.
from django.db import models
class QuerySetManagerMixin(object):
use_for_related_fields = True
def get_queryset(self):
"""Returns a new QuerySet object."""
return self.model.QuerySet(self.model, using=self._db)
def __getattr__(self, attr, *args):
"""
This is necessary to keep calls from things like __deepcopy__ from
trying to evaluate queries on abstract base classes.
"""
if attr.startswith('__') or attr == 'delete':
raise AttributeError
return getattr(self.get_query_set(), attr, *args)
class QuerySetManager(QuerySetManagerMixin, models.Manager):
"""Extends base manager without needing to define multiple managers/queryset classes.
http://djangosnippets.org/snippets/734/
Example Usage
::
from django.db.models.query import QuerySet
from fusionbox.db.models import QuerySetManager
class Foo(models.Model):
objects = QuerySetManager()
class QuerySet(QuerySet):
def published(self):
return self.filter(is_published=True)
"""
pass