Django

Code

Changeset 2205

Show
Ignore:
Timestamp:
01/31/06 15:54:28 (3 years ago)
Author:
lukeplant
Message:

magic-removal: extracted usages of QuerySet? in Manager to a single method,
which can easily be overridden to create custom managers, and updated
tests with new method of creating custom managers.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/magic-removal/django/db/models/manager.py

    r2200 r2205  
    5858    ####################### 
    5959 
     60    def get_query_set(self): 
     61        """Returns a new QuerySet object.  Subclasses can override this method 
     62        to easily customise the behaviour of the Manager. 
     63        """ 
     64        return QuerySet(self.model) 
     65 
    6066    def all(self): 
    6167        # Returns a caching QuerySet. 
    62         return QuerySet(self.model
     68        return self.get_query_set(
    6369 
    6470    def count(self): 
    65         return QuerySet(self.model).count() 
     71        return self.get_query_set().count() 
    6672 
    6773    def dates(self, *args, **kwargs): 
    68         return QuerySet(self.model).dates(*args, **kwargs) 
     74        return self.get_query_set().dates(*args, **kwargs) 
    6975 
    7076    def delete(self, *args, **kwargs): 
    71         return QuerySet(self.model).delete(*args, **kwargs) 
     77        return self.get_query_set().delete(*args, **kwargs) 
    7278 
    7379    def distinct(self, *args, **kwargs): 
    74         return QuerySet(self.model).distinct(*args, **kwargs) 
     80        return self.get_query_set().distinct(*args, **kwargs) 
    7581 
    7682    def extra(self, *args, **kwargs): 
    77         return QuerySet(self.model).extra(*args, **kwargs) 
     83        return self.get_query_set().extra(*args, **kwargs) 
    7884 
    7985    def get(self, *args, **kwargs): 
    80         return QuerySet(self.model).get(*args, **kwargs) 
     86        return self.get_query_set().get(*args, **kwargs) 
    8187 
    8288    def filter(self, *args, **kwargs): 
    83         return QuerySet(self.model).filter(*args, **kwargs) 
     89        return self.get_query_set().filter(*args, **kwargs) 
    8490 
    8591    def in_bulk(self, *args, **kwargs): 
    86         return QuerySet(self.model).in_bulk(*args, **kwargs) 
     92        return self.get_query_set().in_bulk(*args, **kwargs) 
    8793 
    8894    def iterator(self, *args, **kwargs): 
    89         return QuerySet(self.model).iterator(*args, **kwargs) 
     95        return self.get_query_set().iterator(*args, **kwargs) 
    9096 
    9197    def order_by(self, *args, **kwargs): 
    92         return QuerySet(self.model).order_by(*args, **kwargs) 
     98        return self.get_query_set().order_by(*args, **kwargs) 
    9399 
    94100    def select_related(self, *args, **kwargs): 
    95         return QuerySet(self.model).select_related(*args, **kwargs) 
     101        return self.get_query_set().select_related(*args, **kwargs) 
    96102 
    97103    def values(self, *args, **kwargs): 
    98         return QuerySet(self.model).values(*args, **kwargs) 
     104        return self.get_query_set().values(*args, **kwargs) 
    99105 
    100106    ################# 
  • django/branches/magic-removal/tests/modeltests/custom_managers/models.py

    r2195 r2205  
    2323 
    2424class PublishedBookManager(models.Manager): 
    25     core_filters = {'is_published__exact': True} 
     25    def get_query_set(self): 
     26        return super(PublishedBookManager, self).get_query_set().filter(is_published=True) 
    2627 
    2728class Book(models.Model): 
     
    3738 
    3839class FastCarManager(models.Manager): 
    39     core_filters = {'top_speed__gt': 150} 
     40    def get_query_set(self): 
     41        return super(FastCarManager, self).get_query_set().filter(top_speed__gt=150) 
    4042 
    4143class Car(models.Model):