首页 > Django Filter 如何提取时间为今天的记录?

Django Filter 如何提取时间为今天的记录?

如题,想在自己的模型中提取出今天所有的记录怎么写?


具体的我没做过,不过我猜想可以这么做:

我这会儿做了个例子,发现还行,你可以尝试一下:

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.Managermodels.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)
【热门文章】
【热门文章】