from django.db import models
class QuerySetManager(models.Manager):
def get_query_set(self):
return self.model.QuerySet(self.model)
# Using it in a model:
from django.db.models.query import QuerySet
import datetime
class Entry(models.Model):
...
objects = QuerySetManager()
...
class QuerySet(QuerySet):
def on_date(self, date):
next = date + datetime.timedelta(days = 1)
return self.filter(
posted__gt = date,
posted__lt = next
)
# Now you can get entries on a specific day like so:
# Entry.objects.all().on_date(datetime.date.today())
Comments
This works for Entry.objects.filter().on_date(date) but not Entry.objects.on_date(date) as some may wish, for this add the following snippet to QuerySetManager.
`
`
#
In response to the above comment, I believe it can simple be written as:
...since the default attribute lookup will check self.class and superclasses.
#