Py学习  »  DjangoApp

[精华] django问题:如何从一张表里面取最近一天的数据。正文附表!

加个小括号_ • 8 年前 • 3048 次点击  
class Match(models.Model):
    title = models.CharField(max_length=50)
    game = models.ForeignKey(Game)
    team1 = models.ForeignKey(Team, related_name='team1')
    team2 = models.ForeignKey(Team, related_name='team2')
    team1_score = models.IntegerField(default=0)
    team2_score = models.IntegerField(default=0)
    auto = models.BooleanField(default=True)
    start_time = models.DateTimeField()
    status = models.CharField(max_length=10, default='ON')
    is_end = models.BooleanField(default=False)

根据start_time取最近一天的数据。如果今天有就只取今天的,后天有明天没有就只取后天的,简而言之是取最近一天的。求助!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3013
文章 [ 1 ]  |  最新文章 8 年前
Py站长
Reply   •   1 楼
Py站长    8 年前

单从这个需求来看的话,你这个模型是完成不了的。

你得再维护一个中间数据。例如,在redis里维护一个时间值,这个时间是 所有行的时间值的最大值。每次更新或新增行时,更新这个值。(这个任务可以异步化)

当你要找最近一天的数据时,先查出这个值,然后和当前时间比较一下,然后就知道到底应该是以什么条件去过滤了。

这种方法的好处是查询速度快。