2012-05-15 34 views
0

我有一個模型名稱有時間戳的評級。我想限制用戶每天只有3次收視。 如何獲得過去24小時內特定用戶的評分數?如何使用django datetime在過去的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 12AM到5/14 12AM,可以獲得收視率。

回答

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() 
+0

isnt timestamp = datetime.date.today()只是找到今天()的時間戳的評級? – iCodeLikeImDrunk

+0

是的,它爲今天的特定用戶找到了帶有時間戳的評分並返回了計數。例如,用戶今天有2個評分。那是你要的嗎? – solartic

+0

我想我沒有解釋清楚,我想在一天內獲得收視率。所以從5月13日上午12點到5月14日上午12點,我會得到用戶所做的評分計數。謝謝你的幫助! – iCodeLikeImDrunk

相關問題