如题,想在自己的模型中提取出今天所有的记录怎么写?
具体的我没做过,不过我猜想可以这么做:
- 做一个相应Model的Manager。
- 写个方法,查询所有记录,使用filter过滤,找model中的日期字段与当日期一样的记录
我这会儿做了个例子,发现还行,你可以尝试一下:
from django.db import models
from django.utils.timezone import now, timedelta
class PostManager(models.Manager):
def get_query_set(self):
return models.query.QuerySet(self.model, using=self._db)
def get_this_day(self):
start = now().date()
end = start + timedelta(days=1)
return self.get_query_set().filter(pub_date__range=(start, end))
class Post(models.Model):
title = models.CharField(max_length=128)
pub_date = models.DateTimeField()
objects = PostManager()
class Meta:
ordering = ['-id']
def __unicode__(self):
return self.title
关于models.Manager
和models.query.QuerySet
,我自己看到一篇文章挺不错的,你有兴趣的话,也可以读一下:
http://www.oschina.net/translate/higher-level-query-api-django-orm
找到解决方法了:
now = timezone.now()
start = now - datetime.timedelta(hours=23, minutes=59, seconds=59)
today_topic = Topic.objects.filter(created_on__gt=start)