from django.db import models
from django.db.models.query import QuerySet
class PersonQuerySet(QuerySet):
def men(self):
return self.filter(sex='m')
def women(self):
return self.filter(sex='f')
class PersonManager(models.Manager):
def get_query_set(self):
PersonQuerySet(self.model, using=self._db)
def men(self):
return self.get_query_set().men()
def women(self):
return self.get_query_set().women()
class Person(models.Model)
name = models.CharField()
birth_date = models.DateField()
sex = models.CharField(max_length=1)
objects = PersonManager()
qs = Person.objects.filter(birth_date__year=1978)
qs.men().filter(name__icontains='Bob')
Comments