如何使用django datetime计算过去24小时的评分?

时间:2012-05-15 02:09:28

标签: datetime django-models

我有一个型号名称,其中有一个时间戳。我想将用户限制为每天只有3个评级。 如何在过去24小时内获得特定用户的评分计数?

class Ratings(models.Model):   
    user = models.ForeignKey(User)
    book = models.ForeignKey('Books')
    rating = models.IntegerField(max_length=150)
    timestamp = models.DateTimeField(auto_now_add=True)
    is_checkedin_rating = models.BooleanField()

编辑* 为了更清楚,我希望在24小时内找到特定用户的评分计数。所以,从让我们说5月13日上午12点到5点14分12点,获得评分数。

1 个答案:

答案 0 :(得分:1)

import datetime

today = datetime.date.today()
end_time = datetime.datetime.fromordinal(today.toordinal()) // today at 12:00am or 00:00
start_time = end_time -  datetime.timedelta(days=1) yesterday at 12:00am

count = Ratings.objects.filter(
    user=some_user,
    timestamp__gte=start_time,
    timestamp__lte=end_time
).count()