Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
hub-client / dockerhub / models.py
Size: Mime:
# 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